| 20260909 | 20260909_ARI@KC | away | Zac Gallen | Zac Gallen | True | 5.0 | 3.1 | -5 | 3 | 1 | -2 | 7/4 | 1/2 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.336734693877551,
"WHIP": 1.5612244897959184,
"IP": 98.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.158,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.99,
"sample_weight": 1.0,
"run_prevention_factor": 1.0841,
"strikeout_factor": 0.9194,
"walk_factor": 0.956,
"homer_factor": 1.1708,
"regression_flag": "neutral",
"k_percent": 13.9,
"bb_percent": 7.0,
"woba": 0.373,
"xwoba": 0.384,
"barrel_percent": 11.0,
"hard_hit_percent": 44.7,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 858,
"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": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "668678",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 27.0,
"R": 27.0,
"H": 35.0,
"BB": 10.0,
"SO": 15.0,
"HR": 7.0,
"BF": 128.0,
"Pitches": 443.0
},
"per_game": {
"IP": 5.2,
"ER": 5.4,
"R": 5.4,
"H": 7.0,
"BB": 2.0,
"SO": 3.0,
"HR": 1.4,
"BF": 25.6,
"Pitches": 88.6
},
"rates": {
"ERA": 8.5765,
"WHIP": 1.5882,
"ER_per_IP": 0.95294,
"H_per_IP": 1.23529,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.52941,
"HR_per_IP": 0.24706
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 45.0,
"R": 46.0,
"H": 71.0,
"BB": 17.0,
"SO": 32.0,
"HR": 12.0,
"BF": 247.0,
"Pitches": 874.0
},
"per_game": {
"IP": 5.1,
"ER": 4.5,
"R": 4.6,
"H": 7.1,
"BB": 1.7,
"SO": 3.2,
"HR": 1.2,
"BF": 24.7,
"Pitches": 87.4
},
"rates": {
"ERA": 7.3636,
"WHIP": 1.6,
"ER_per_IP": 0.81818,
"H_per_IP": 1.29091,
"BB_per_IP": 0.30909,
"SO_per_IP": 0.58182,
"HR_per_IP": 0.21818
}
},
"season": {
"games": 19,
"totals": {
"IP": 98.0,
"ER": 69.0,
"R": 74.0,
"H": 122.0,
"BB": 31.0,
"SO": 61.0,
"HR": 18.0,
"BF": 440.0,
"Pitches": 1644.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6316,
"R": 3.8947,
"H": 6.4211,
"BB": 1.6316,
"SO": 3.2105,
"HR": 0.9474,
"BF": 23.1579,
"Pitches": 86.5263
},
"rates": {
"ERA": 6.3367,
"WHIP": 1.5612,
"ER_per_IP": 0.70408,
"H_per_IP": 1.2449,
"BB_per_IP": 0.31633,
"SO_per_IP": 0.62245,
"HR_per_IP": 0.18367
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 4.221,
"predicted_H": 6.464,
"predicted_BB": 1.829,
"predicted_SO": 3.478,
"predicted_HR": 1.123,
"predicted_ERA": 7.0358,
"predicted_WHIP": 1.536
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 4.221,
"final": 4.1242,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 6.464,
"final": 6.2608,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.829,
"final": 1.4659,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.478,
"final": 5.0207,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.123,
"final": 0.6311,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.0358,
"final": 7.0358,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.536,
"final": 1.536,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.0,
"ER": 45,
"H": 71,
"BB": 17,
"SO": 32,
"HR": 12,
"ERA": 7.363636363636362,
"WHIP": 1.5999999999999999,
"K9": 5.236363636363635,
"HR9": 1.9636363636363634,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-07-07T00:00:00"
},
"recent_form_boost": 1.3421396456493315,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668678",
"player_name": "Zac Gallen",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 146,
"wins": 78,
"losses": 68,
"win_pct": 0.5342,
"runs_scored": 646.0,
"runs_allowed": 644.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0137,
"avg_runs_scored": 4.4247,
"avg_runs_allowed": 4.411,
"offense_index": 0.9885,
"defense_index": 1.0148,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.2,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0658
},
"opponent": {
"team": "KC",
"games": 146,
"wins": 64,
"losses": 82,
"win_pct": 0.4384,
"runs_scored": 624.0,
"runs_allowed": 715.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6233,
"avg_runs_scored": 4.274,
"avg_runs_allowed": 4.8973,
"offense_index": 0.9548,
"defense_index": 0.914,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.1989
},
"edges": {
"quality_edge": 0.2647,
"offense_edge": -0.0115,
"opponent_offense_edge": -0.0452,
"defense_strength": 0.0148,
"opponent_defense_weakness": 0.086,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0128,
"run_prevention": 0.9781,
"strikeout": 1.0116
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668678",
"profile": {
"available": true,
"pitcher_id": "668678",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 412.0,
"k_percent": 13.9,
"bb_percent": 7.0,
"woba": 0.373,
"xwoba": 0.384,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 11.0,
"hard_hit_percent": 44.7,
"avg_best_speed": 80.2446,
"avg_hyper_speed": 95.1023,
"whiff_percent": 19.0,
"swing_percent": 46.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.3752,
"command_and_miss": -0.7107,
"regression_edge": -0.3143,
"xwoba_edge": -2.0857,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.9714,
"whiff_edge": -0.8571,
"bb_edge": 0.55,
"pitch_design_score": -0.0457
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668678",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.05966936525661,
"release_spin_rate": 2212.6837637731783,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.05966936525661,
"release_spin_rate": 2212.6837637731783,
"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.0597,
"release_spin_rate": 2212.6838,
"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.0457,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3264,
"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.99,
"sample_weight": 1.0,
"run_prevention_factor": 1.0841,
"strikeout_factor": 0.9194,
"walk_factor": 0.956,
"homer_factor": 1.1708,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "668678",
"espn_id": 39910,
"player_name": "Zac Gallen",
"team": "ARI",
"role": "pitcher",
"espn_rank": 858,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 858,
"gp_value": 19.0,
"gp_rank": 402,
"gs_value": 19.0,
"gs_rank": 103,
"qs_value": 3.0,
"qs_rank": 139,
"era_value": 6.3367,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 9.0,
"l_rank": 29,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 98.0,
"ip_rank": 127,
"h_value": 122.0,
"h_rank": 70,
"er_value": 69.0,
"er_rank": 35,
"hr_value": 18.0,
"hr_rank": 55,
"bb_value": 31.0,
"bb_rank": 154,
"k_value": 61.0,
"k_rank": 222,
"k_per_9_value": 5.602041,
"k_per_9_rank": 47,
"whip_value": 1.5612,
"whip_rank": null,
"war_value": -1.69,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0841,
"adjusted": 5
},
"predicted_H": {
"original": 7.0,
"factor": 1.0841,
"adjusted": 8
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1708,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9194,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260909_ARI@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_ARI@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.0 | 5.0 | 0 | 1 | 2 | 1 | 4/4 | 1/2 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.51,
"WHIP": 1.095,
"IP": 66.2,
"games_started": null,
"games_pitched": 52,
"role_avg_IP": 3.444,
"recent_avg_IP": 3.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0164,
"sample_weight": 0.844,
"run_prevention_factor": 1.0014,
"strikeout_factor": 0.9691,
"walk_factor": 0.9679,
"homer_factor": 0.9726,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.8,
"bb_percent": 7.3,
"woba": 0.275,
"xwoba": 0.31,
"barrel_percent": 5.9,
"hard_hit_percent": 36.1,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 220,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 66.2,
"season_ERA": 3.51,
"season_WHIP": 1.095,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.417,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7285,
"prior_weight": 0.2715
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 52,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.0,
"ER": 13.0,
"R": 13.0,
"H": 19.0,
"BB": 6.0,
"SO": 9.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 283.0
},
"per_game": {
"IP": 3.2,
"ER": 2.6,
"R": 2.6,
"H": 3.8,
"BB": 1.2,
"SO": 1.8,
"HR": 0.6,
"BF": 16.2,
"Pitches": 56.6
},
"rates": {
"ERA": 6.1579,
"WHIP": 1.3158,
"ER_per_IP": 0.68421,
"H_per_IP": 1.0,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.47368,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 24.1,
"ER": 16.0,
"R": 17.0,
"H": 26.0,
"BB": 8.0,
"SO": 12.0,
"HR": 3.0,
"BF": 106.0,
"Pitches": 361.0
},
"per_game": {
"IP": 2.1,
"ER": 1.6,
"R": 1.7,
"H": 2.6,
"BB": 0.8,
"SO": 1.2,
"HR": 0.3,
"BF": 10.6,
"Pitches": 36.1
},
"rates": {
"ERA": 5.9178,
"WHIP": 1.3973,
"ER_per_IP": 0.65753,
"H_per_IP": 1.06849,
"BB_per_IP": 0.32877,
"SO_per_IP": 0.49315,
"HR_per_IP": 0.12329
}
},
"season": {
"games": 52,
"totals": {
"IP": 66.2,
"ER": 26.0,
"R": 30.0,
"H": 53.0,
"BB": 20.0,
"SO": 46.0,
"HR": 5.0,
"BF": 274.0,
"Pitches": 993.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5,
"R": 0.5769,
"H": 1.0192,
"BB": 0.3846,
"SO": 0.8846,
"HR": 0.0962,
"BF": 5.2692,
"Pitches": 19.0962
},
"rates": {
"ERA": 3.51,
"WHIP": 1.095,
"ER_per_IP": 0.39,
"H_per_IP": 0.795,
"BB_per_IP": 0.3,
"SO_per_IP": 0.69,
"HR_per_IP": 0.075
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.957,
"predicted_H": 3.281,
"predicted_BB": 1.111,
"predicted_SO": 2.132,
"predicted_HR": 0.448,
"predicted_ERA": 5.2597,
"predicted_WHIP": 1.3117
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4647,
"form_weight": 0.5353,
"form_reliability": 0.7285,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.417,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7285,
"prior_weight": 0.2715
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.957,
"final": 1.5123,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.281,
"final": 3.6151,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.111,
"final": 1.0594,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.132,
"final": 4.3942,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.448,
"final": 0.7045,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2597,
"final": 5.2597,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3117,
"final": 1.3117,
"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": 24.1,
"ER": 16,
"H": 26,
"BB": 8,
"SO": 12,
"HR": 3,
"ERA": 5.917808219178083,
"WHIP": 1.3972602739726028,
"K9": 4.438356164383562,
"HR9": 1.1095890410958904,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.1388958859512954,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.417,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7285,
"prior_weight": 0.2715
}
},
{
"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": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "KC",
"games": 146,
"wins": 64,
"losses": 82,
"win_pct": 0.4384,
"runs_scored": 624.0,
"runs_allowed": 715.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6233,
"avg_runs_scored": 4.274,
"avg_runs_allowed": 4.8973,
"offense_index": 0.9548,
"defense_index": 0.914,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.1989
},
"opponent": {
"team": "ARI",
"games": 146,
"wins": 78,
"losses": 68,
"win_pct": 0.5342,
"runs_scored": 646.0,
"runs_allowed": 644.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0137,
"avg_runs_scored": 4.4247,
"avg_runs_allowed": 4.411,
"offense_index": 0.9885,
"defense_index": 1.0148,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.2,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0658
},
"edges": {
"quality_edge": -0.2647,
"offense_edge": -0.0452,
"opponent_offense_edge": -0.0115,
"defense_strength": -0.086,
"opponent_defense_weakness": -0.0148,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9873,
"run_prevention": 1.02,
"strikeout": 0.993
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 211.0,
"k_percent": 16.8,
"bb_percent": 7.3,
"woba": 0.275,
"xwoba": 0.31,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 36.1,
"avg_best_speed": 77.8745,
"avg_hyper_speed": 93.7013,
"whiff_percent": 23.8,
"swing_percent": 46.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2831,
"command_and_miss": -0.2993,
"regression_edge": -1.0,
"xwoba_edge": 0.0286,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.2571,
"whiff_edge": -0.1714,
"bb_edge": 0.475,
"pitch_design_score": -0.0027
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 39,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 39,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 39,
"pitch_usage": 0.0,
"release_speed": 89.82679331429227,
"release_spin_rate": 2099.5103408384525,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.8268,
"release_spin_rate": 2099.5103,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0027,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0196,
"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.0164,
"sample_weight": 0.844,
"run_prevention_factor": 1.0014,
"strikeout_factor": 0.9691,
"walk_factor": 0.9679,
"homer_factor": 0.9726,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663738",
"espn_id": 41227,
"player_name": "Daniel Lynch IV",
"team": "KC",
"role": "pitcher",
"espn_rank": 220,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 220,
"gp_value": 52.0,
"gp_rank": 89,
"gs_value": 6.0,
"gs_rank": 202,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 3.51,
"era_rank": null,
"w_value": 4.0,
"w_rank": 189,
"l_value": 5.0,
"l_rank": 135,
"sv_value": 1.0,
"sv_rank": 138,
"hld_value": 13.0,
"hld_rank": 49,
"ip_value": 66.2,
"ip_rank": 193,
"h_value": 53.0,
"h_rank": 223,
"er_value": 26.0,
"er_rank": 229,
"hr_value": 5.0,
"hr_rank": 316,
"bb_value": 20.0,
"bb_rank": 296,
"k_value": 46.0,
"k_rank": 315,
"k_per_9_value": 6.21,
"k_per_9_rank": 44,
"whip_value": 1.095,
"whip_rank": null,
"war_value": 0.68,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0012,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0012,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9729,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9769,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9739,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260909_ARI@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CHC@MIL | away | Kevin Gausman | Kevin Gausman | True | 5.2 | 4.0 | -5 | 5 | 6 | 1 | 7/8 | 4/2 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.379876796714579,
"WHIP": 1.2566735112936345,
"IP": 162.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.598,
"recent_avg_IP": 5.6,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1639,
"sample_weight": 1.0,
"run_prevention_factor": 0.9861,
"strikeout_factor": 1.0251,
"walk_factor": 0.944,
"homer_factor": 1.0046,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 6.4,
"woba": 0.31,
"xwoba": 0.305,
"barrel_percent": 7.2,
"hard_hit_percent": 39.3,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 131,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592332",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 15.0,
"R": 15.0,
"H": 28.0,
"BB": 7.0,
"SO": 34.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 478.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 5.6,
"BB": 1.4,
"SO": 6.8,
"HR": 1.0,
"BF": 23.4,
"Pitches": 95.6
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.25,
"ER_per_IP": 0.53571,
"H_per_IP": 1.0,
"BB_per_IP": 0.25,
"SO_per_IP": 1.21429,
"HR_per_IP": 0.17857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 28.0,
"R": 29.0,
"H": 59.0,
"BB": 15.0,
"SO": 57.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 959.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.9,
"H": 5.9,
"BB": 1.5,
"SO": 5.7,
"HR": 0.6,
"BF": 23.8,
"Pitches": 95.9
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3214,
"ER_per_IP": 0.5,
"H_per_IP": 1.05357,
"BB_per_IP": 0.26786,
"SO_per_IP": 1.01786,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 29,
"totals": {
"IP": 162.1,
"ER": 79.0,
"R": 85.0,
"H": 160.0,
"BB": 44.0,
"SO": 165.0,
"HR": 21.0,
"BF": 683.0,
"Pitches": 2714.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7241,
"R": 2.931,
"H": 5.5172,
"BB": 1.5172,
"SO": 5.6897,
"HR": 0.7241,
"BF": 23.5517,
"Pitches": 93.5862
},
"rates": {
"ERA": 4.3799,
"WHIP": 1.2567,
"ER_per_IP": 0.48665,
"H_per_IP": 0.98563,
"BB_per_IP": 0.27105,
"SO_per_IP": 1.01643,
"HR_per_IP": 0.12936
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.898,
"predicted_H": 5.72,
"predicted_BB": 1.568,
"predicted_SO": 6.128,
"predicted_HR": 0.816,
"predicted_ERA": 4.6023,
"predicted_WHIP": 1.2861
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.898,
"final": 3.3522,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.72,
"final": 6.2476,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.568,
"final": 2.5703,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.128,
"final": 5.6631,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.816,
"final": 0.4797,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6023,
"final": 4.6023,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2861,
"final": 1.2861,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 28,
"H": 59,
"BB": 15,
"SO": 57,
"HR": 6,
"ERA": 4.499999999999999,
"WHIP": 1.3214285714285712,
"K9": 9.160714285714285,
"HR9": 0.9642857142857142,
"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-03T00:00:00"
},
"recent_form_boost": 1.0130162690259548,
"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": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 146,
"wins": 81,
"losses": 65,
"win_pct": 0.5548,
"runs_scored": 774.0,
"runs_allowed": 644.0,
"run_differential": 130.0,
"run_differential_per_game": 0.8904,
"avg_runs_scored": 5.3014,
"avg_runs_allowed": 4.411,
"offense_index": 1.1843,
"defense_index": 1.0148,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.3,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.121
},
"opponent": {
"team": "MIL",
"games": 146,
"wins": 90,
"losses": 56,
"win_pct": 0.6164,
"runs_scored": 734.0,
"runs_allowed": 564.0,
"run_differential": 170.0,
"run_differential_per_game": 1.1644,
"avg_runs_scored": 5.0274,
"avg_runs_allowed": 3.863,
"offense_index": 1.1231,
"defense_index": 1.1587,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 6.5,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.242
},
"edges": {
"quality_edge": -0.121,
"offense_edge": 0.1843,
"opponent_offense_edge": 0.1231,
"defense_strength": 0.0148,
"opponent_defense_weakness": -0.1587,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9907,
"run_prevention": 1.0243,
"strikeout": 0.9865
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 601.0,
"k_percent": 24.2,
"bb_percent": 6.4,
"woba": 0.31,
"xwoba": 0.305,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 39.3,
"avg_best_speed": 76.872,
"avg_hyper_speed": 94.4044,
"whiff_percent": 27.2,
"swing_percent": 49.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0915,
"command_and_miss": 0.3914,
"regression_edge": 0.1429,
"xwoba_edge": 0.1714,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.2,
"whiff_edge": 0.3143,
"bb_edge": 0.7,
"pitch_design_score": -0.0427
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.11256087645637,
"release_spin_rate": 1999.5502813601959,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.11256087645637,
"release_spin_rate": 1999.5502813601959,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.1126,
"release_spin_rate": 1999.5503,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0427,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3053,
"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.1639,
"sample_weight": 1.0,
"run_prevention_factor": 0.9861,
"strikeout_factor": 1.0251,
"walk_factor": 0.944,
"homer_factor": 1.0046,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592332",
"espn_id": 32667,
"player_name": "Kevin Gausman",
"team": "CHC",
"role": "pitcher",
"espn_rank": 131,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 131,
"gp_value": 29.0,
"gp_rank": 230,
"gs_value": 29.0,
"gs_rank": 7,
"qs_value": 14.0,
"qs_rank": 23,
"era_value": 4.3798,
"era_rank": 42.0,
"w_value": 9.0,
"w_rank": 40,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 162.1,
"ip_rank": 17,
"h_value": 160.0,
"h_rank": 8,
"er_value": 79.0,
"er_rank": 12,
"hr_value": 21.0,
"hr_rank": 30,
"bb_value": 44.0,
"bb_rank": 65,
"k_value": 165.0,
"k_rank": 20,
"k_per_9_value": 9.147844,
"k_per_9_rank": 31,
"whip_value": 1.2566,
"whip_rank": 33.0,
"war_value": 1.38,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9861,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9861,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0046,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0251,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 120,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260909_CHC@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CHC@MIL | home | Logan Henderson | Logan Henderson | True | 6.1 | 5.0 | -4 | 3 | 0 | -3 | 7/2 | 4/1 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.484,
"WHIP": 0.792,
"IP": 83.1,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 5.556,
"recent_avg_IP": 6.667,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6692,
"sample_weight": 0.956,
"run_prevention_factor": 0.9431,
"strikeout_factor": 1.0535,
"walk_factor": 0.9101,
"homer_factor": 0.9869,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 4.5,
"woba": 0.243,
"xwoba": 0.253,
"barrel_percent": 8.9,
"hard_hit_percent": 38.6,
"whiff_percent": 26.8
},
"espn_rank": {
"rank": 39,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "701656",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.1,
"ER": 8.0,
"R": 8.0,
"H": 17.0,
"BB": 4.0,
"SO": 31.0,
"HR": 5.0,
"BF": 118.0,
"Pitches": 477.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 0.8,
"SO": 6.2,
"HR": 1.0,
"BF": 23.6,
"Pitches": 95.4
},
"rates": {
"ERA": 2.16,
"WHIP": 0.63,
"ER_per_IP": 0.24,
"H_per_IP": 0.51,
"BB_per_IP": 0.12,
"SO_per_IP": 0.93,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 16.0,
"R": 16.0,
"H": 34.0,
"BB": 8.0,
"SO": 63.0,
"HR": 10.0,
"BF": 220.0,
"Pitches": 882.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 3.4,
"BB": 0.8,
"SO": 6.3,
"HR": 1.0,
"BF": 22.0,
"Pitches": 88.2
},
"rates": {
"ERA": 2.3867,
"WHIP": 0.6961,
"ER_per_IP": 0.26519,
"H_per_IP": 0.56354,
"BB_per_IP": 0.1326,
"SO_per_IP": 1.0442,
"HR_per_IP": 0.16575
}
},
"season": {
"games": 15,
"totals": {
"IP": 83.1,
"ER": 23.0,
"R": 23.0,
"H": 52.0,
"BB": 14.0,
"SO": 93.0,
"HR": 12.0,
"BF": 310.0,
"Pitches": 1236.0
},
"per_game": {
"IP": 5.2,
"ER": 1.5333,
"R": 1.5333,
"H": 3.4667,
"BB": 0.9333,
"SO": 6.2,
"HR": 0.8,
"BF": 20.6667,
"Pitches": 82.4
},
"rates": {
"ERA": 2.484,
"WHIP": 0.792,
"ER_per_IP": 0.276,
"H_per_IP": 0.624,
"BB_per_IP": 0.168,
"SO_per_IP": 1.116,
"HR_per_IP": 0.144
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.983,
"predicted_H": 4.109,
"predicted_BB": 1.21,
"predicted_SO": 6.197,
"predicted_HR": 0.953,
"predicted_ERA": 2.8521,
"predicted_WHIP": 0.8498
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.983,
"final": 2.902,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.109,
"final": 5.4262,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.21,
"final": 2.4812,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.197,
"final": 5.196,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.953,
"final": 0.9744,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8521,
"final": 2.8521,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8498,
"final": 0.8498,
"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.1,
"ER": 16,
"H": 34,
"BB": 8,
"SO": 63,
"HR": 10,
"ERA": 2.386740331491713,
"WHIP": 0.6961325966850829,
"K9": 9.397790055248619,
"HR9": 1.4917127071823204,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.7596421569501854,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 7,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "701656",
"player_name": "Logan Henderson",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"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": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 4.0,
"delta": -2.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 146,
"wins": 90,
"losses": 56,
"win_pct": 0.6164,
"runs_scored": 734.0,
"runs_allowed": 564.0,
"run_differential": 170.0,
"run_differential_per_game": 1.1644,
"avg_runs_scored": 5.0274,
"avg_runs_allowed": 3.863,
"offense_index": 1.1231,
"defense_index": 1.1587,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 6.5,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.242
},
"opponent": {
"team": "CHC",
"games": 146,
"wins": 81,
"losses": 65,
"win_pct": 0.5548,
"runs_scored": 774.0,
"runs_allowed": 644.0,
"run_differential": 130.0,
"run_differential_per_game": 0.8904,
"avg_runs_scored": 5.3014,
"avg_runs_allowed": 4.411,
"offense_index": 1.1843,
"defense_index": 1.0148,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 5.3,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.121
},
"edges": {
"quality_edge": 0.121,
"offense_edge": 0.1231,
"opponent_offense_edge": 0.1843,
"defense_strength": 0.1587,
"opponent_defense_weakness": -0.0148,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0022,
"run_prevention": 1.0076,
"strikeout": 0.9889
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701656",
"profile": {
"available": true,
"pitcher_id": "701656",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 239.0,
"k_percent": 30.0,
"bb_percent": 4.5,
"woba": 0.243,
"xwoba": 0.253,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 38.6,
"avg_best_speed": 77.1689,
"avg_hyper_speed": 94.0041,
"whiff_percent": 26.8,
"swing_percent": 52.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9249,
"command_and_miss": 0.8393,
"regression_edge": -0.2857,
"xwoba_edge": 1.6571,
"barrel_edge": -0.4,
"hard_hit_edge": -0.1,
"whiff_edge": 0.2571,
"bb_edge": 1.175,
"pitch_design_score": -0.0941
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701656",
"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": 88.19496107158342,
"release_spin_rate": 2417.1147694148563,
"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": 88.19496107158342,
"release_spin_rate": 2417.1147694148563,
"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.195,
"release_spin_rate": 2417.1148,
"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.0941,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6723,
"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.6692,
"sample_weight": 0.956,
"run_prevention_factor": 0.9431,
"strikeout_factor": 1.0535,
"walk_factor": 0.9101,
"homer_factor": 0.9869,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "701656",
"espn_id": 4917878,
"player_name": "Logan Henderson",
"team": "MIL",
"role": "pitcher",
"espn_rank": 39,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 39,
"gp_value": 15.0,
"gp_rank": 457,
"gs_value": 15.0,
"gs_rank": 134,
"qs_value": 7.0,
"qs_rank": 81,
"era_value": 2.484,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 83.1,
"ip_rank": 153,
"h_value": 52.0,
"h_rank": 232,
"er_value": 23.0,
"er_rank": 270,
"hr_value": 12.0,
"hr_rank": 132,
"bb_value": 14.0,
"bb_rank": 397,
"k_value": 93.0,
"k_rank": 115,
"k_per_9_value": 10.044,
"k_per_9_rank": 20,
"whip_value": 0.792,
"whip_rank": null,
"war_value": 2.84,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9456,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9456,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9141,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9875,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0511,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 30,
"Pitches": 117,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"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/20260909_CHC@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CIN@LAD | away | Rhett Lowder | Rhett Lowder | True | 4.2 | 3.1 | -4 | 4 | 7 | 3 | 6/7 | 2/2 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.431034482758621,
"WHIP": 1.4913793103448276,
"IP": 116.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.955,
"recent_avg_IP": 5.4,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5704,
"sample_weight": 1.0,
"run_prevention_factor": 1.0485,
"strikeout_factor": 0.9366,
"walk_factor": 0.996,
"homer_factor": 1.0758,
"regression_flag": "neutral",
"k_percent": 17.2,
"bb_percent": 9.0,
"woba": 0.343,
"xwoba": 0.347,
"barrel_percent": 9.5,
"hard_hit_percent": 38.3,
"whiff_percent": 18.7
},
"espn_rank": {
"rank": 265,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695076",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 18.0,
"R": 20.0,
"H": 33.0,
"BB": 8.0,
"SO": 17.0,
"HR": 5.0,
"BF": 122.0,
"Pitches": 485.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 4.0,
"H": 6.6,
"BB": 1.6,
"SO": 3.4,
"HR": 1.0,
"BF": 24.4,
"Pitches": 97.0
},
"rates": {
"ERA": 6.0,
"WHIP": 1.5185,
"ER_per_IP": 0.66667,
"H_per_IP": 1.22222,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.62963,
"HR_per_IP": 0.18519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 32.0,
"R": 34.0,
"H": 54.0,
"BB": 14.0,
"SO": 32.0,
"HR": 7.0,
"BF": 213.0,
"Pitches": 824.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.4,
"H": 5.4,
"BB": 1.4,
"SO": 3.2,
"HR": 0.7,
"BF": 21.3,
"Pitches": 82.4
},
"rates": {
"ERA": 5.9586,
"WHIP": 1.4069,
"ER_per_IP": 0.66207,
"H_per_IP": 1.11724,
"BB_per_IP": 0.28966,
"SO_per_IP": 0.66207,
"HR_per_IP": 0.14483
}
},
"season": {
"games": 25,
"totals": {
"IP": 116.0,
"ER": 70.0,
"R": 73.0,
"H": 126.0,
"BB": 47.0,
"SO": 90.0,
"HR": 16.0,
"BF": 522.0,
"Pitches": 1994.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.92,
"H": 5.04,
"BB": 1.88,
"SO": 3.6,
"HR": 0.64,
"BF": 20.88,
"Pitches": 79.76
},
"rates": {
"ERA": 5.431,
"WHIP": 1.4914,
"ER_per_IP": 0.60345,
"H_per_IP": 1.08621,
"BB_per_IP": 0.40517,
"SO_per_IP": 0.77586,
"HR_per_IP": 0.13793
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.152,
"predicted_H": 5.667,
"predicted_BB": 1.634,
"predicted_SO": 3.596,
"predicted_HR": 0.799,
"predicted_ERA": 5.6424,
"predicted_WHIP": 1.4521
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.152,
"final": 3.929,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.667,
"final": 5.3866,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.634,
"final": 1.7879,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.596,
"final": 3.3454,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.799,
"final": 1.3039,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6424,
"final": 5.6424,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4521,
"final": 1.4521,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 32,
"H": 54,
"BB": 14,
"SO": 32,
"HR": 7,
"ERA": 5.958620689655172,
"WHIP": 1.4068965517241379,
"K9": 5.958620689655172,
"HR9": 1.303448275862069,
"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-04T00:00:00"
},
"recent_form_boost": 1.1792477961195509,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "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": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 5,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695076",
"player_name": "Rhett Lowder",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 4.2,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 4.2,
"delta": -1.1333,
"percent_delta": -0.2125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 145,
"wins": 69,
"losses": 76,
"win_pct": 0.4759,
"runs_scored": 610.0,
"runs_allowed": 719.0,
"run_differential": -109.0,
"run_differential_per_game": -0.7517,
"avg_runs_scored": 4.2069,
"avg_runs_allowed": 4.9586,
"offense_index": 0.9362,
"defense_index": 0.9062,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1125
},
"opponent": {
"team": "LAD",
"games": 145,
"wins": 88,
"losses": 57,
"win_pct": 0.6069,
"runs_scored": 714.0,
"runs_allowed": 558.0,
"run_differential": 156.0,
"run_differential_per_game": 1.0759,
"avg_runs_scored": 4.9241,
"avg_runs_allowed": 3.8483,
"offense_index": 1.0958,
"defense_index": 1.1677,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.4,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2925
},
"edges": {
"quality_edge": -0.405,
"offense_edge": -0.0638,
"opponent_offense_edge": 0.0958,
"defense_strength": -0.0938,
"opponent_defense_weakness": -0.1677,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9772,
"run_prevention": 1.045,
"strikeout": 0.9802
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695076",
"profile": {
"available": true,
"pitcher_id": "695076",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 441.0,
"k_percent": 17.2,
"bb_percent": 9.0,
"woba": 0.343,
"xwoba": 0.347,
"sweet_spot_percent": 36.9,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 38.3,
"avg_best_speed": 79.762,
"avg_hyper_speed": 94.2521,
"whiff_percent": 18.7,
"swing_percent": 44.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7078,
"command_and_miss": -0.6136,
"regression_edge": -0.1143,
"xwoba_edge": -1.0286,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.9,
"bb_edge": 0.05,
"pitch_design_score": -0.0385
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695076",
"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.18784850252824,
"release_spin_rate": 2345.0409152257157,
"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.18784850252824,
"release_spin_rate": 2345.0409152257157,
"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.1878,
"release_spin_rate": 2345.0409,
"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.0385,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2752,
"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.5704,
"sample_weight": 1.0,
"run_prevention_factor": 1.0485,
"strikeout_factor": 0.9366,
"walk_factor": 0.996,
"homer_factor": 1.0758,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695076",
"espn_id": 4758873,
"player_name": "Rhett Lowder",
"team": "CIN",
"role": "pitcher",
"espn_rank": 265,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 265,
"gp_value": 25.0,
"gp_rank": 317,
"gs_value": 22.0,
"gs_rank": 87,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 5.431,
"era_rank": null,
"w_value": 6.0,
"w_rank": 103,
"l_value": 9.0,
"l_rank": 29,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 116.0,
"ip_rank": 98,
"h_value": 126.0,
"h_rank": 66,
"er_value": 70.0,
"er_rank": 27,
"hr_value": 16.0,
"hr_rank": 81,
"bb_value": 47.0,
"bb_rank": 50,
"k_value": 90.0,
"k_rank": 128,
"k_per_9_value": 6.9827585,
"k_per_9_rank": 35,
"whip_value": 1.4913,
"whip_rank": null,
"war_value": 0.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0485,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0485,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0758,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9366,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260909_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CIN@LAD | home | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 6.1 | 7.0 | 2 | 1 | 1 | 0 | 3/3 | 0/1 | 7/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.672727272727273,
"WHIP": 0.896969696969697,
"IP": 165.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 6.6,
"recent_avg_IP": 6.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.557,
"sample_weight": 1.0,
"run_prevention_factor": 0.9527,
"strikeout_factor": 1.032,
"walk_factor": 0.936,
"homer_factor": 0.9493,
"regression_flag": "neutral",
"k_percent": 25.4,
"bb_percent": 6.0,
"woba": 0.248,
"xwoba": 0.271,
"barrel_percent": 6.5,
"hard_hit_percent": 36.9,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 10,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "808967",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 8.0,
"R": 8.0,
"H": 21.0,
"BB": 9.0,
"SO": 40.0,
"HR": 3.0,
"BF": 125.0,
"Pitches": 509.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 4.2,
"BB": 1.8,
"SO": 8.0,
"HR": 0.6,
"BF": 25.0,
"Pitches": 101.8
},
"rates": {
"ERA": 2.2979,
"WHIP": 0.9574,
"ER_per_IP": 0.25532,
"H_per_IP": 0.67021,
"BB_per_IP": 0.28723,
"SO_per_IP": 1.2766,
"HR_per_IP": 0.09574
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 67.1,
"ER": 20.0,
"R": 20.0,
"H": 42.0,
"BB": 19.0,
"SO": 71.0,
"HR": 7.0,
"BF": 261.0,
"Pitches": 1010.0
},
"per_game": {
"IP": 6.2,
"ER": 2.0,
"R": 2.0,
"H": 4.2,
"BB": 1.9,
"SO": 7.1,
"HR": 0.7,
"BF": 26.1,
"Pitches": 101.0
},
"rates": {
"ERA": 2.6733,
"WHIP": 0.9059,
"ER_per_IP": 0.29703,
"H_per_IP": 0.62376,
"BB_per_IP": 0.28218,
"SO_per_IP": 1.05446,
"HR_per_IP": 0.10396
}
},
"season": {
"games": 25,
"totals": {
"IP": 165.0,
"ER": 49.0,
"R": 50.0,
"H": 110.0,
"BB": 38.0,
"SO": 161.0,
"HR": 18.0,
"BF": 634.0,
"Pitches": 2465.0
},
"per_game": {
"IP": 6.2,
"ER": 1.96,
"R": 2.0,
"H": 4.4,
"BB": 1.52,
"SO": 6.44,
"HR": 0.72,
"BF": 25.36,
"Pitches": 98.6
},
"rates": {
"ERA": 2.6727,
"WHIP": 0.897,
"ER_per_IP": 0.29697,
"H_per_IP": 0.66667,
"BB_per_IP": 0.2303,
"SO_per_IP": 0.97576,
"HR_per_IP": 0.10909
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.044,
"predicted_H": 4.581,
"predicted_BB": 1.883,
"predicted_SO": 7.17,
"predicted_HR": 0.705,
"predicted_ERA": 2.8363,
"predicted_WHIP": 0.9965
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.044,
"final": 1.6051,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.581,
"final": 3.9163,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.883,
"final": 1.0913,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 7.17,
"final": 6.6781,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.705,
"final": 0.4086,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8363,
"final": 2.8363,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9965,
"final": 0.9965,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 67.1,
"ER": 20,
"H": 42,
"BB": 19,
"SO": 71,
"HR": 7,
"ERA": 2.6732673267326734,
"WHIP": 0.905940594059406,
"K9": 9.490099009900991,
"HR9": 0.9356435643564357,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.7971216438491515,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808967",
"player_name": "Yoshinobu Yamamoto",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 145,
"wins": 88,
"losses": 57,
"win_pct": 0.6069,
"runs_scored": 714.0,
"runs_allowed": 558.0,
"run_differential": 156.0,
"run_differential_per_game": 1.0759,
"avg_runs_scored": 4.9241,
"avg_runs_allowed": 3.8483,
"offense_index": 1.0958,
"defense_index": 1.1677,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.4,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.2925
},
"opponent": {
"team": "CIN",
"games": 145,
"wins": 69,
"losses": 76,
"win_pct": 0.4759,
"runs_scored": 610.0,
"runs_allowed": 719.0,
"run_differential": -109.0,
"run_differential_per_game": -0.7517,
"avg_runs_scored": 4.2069,
"avg_runs_allowed": 4.9586,
"offense_index": 0.9362,
"defense_index": 0.9062,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 6.3,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.1125
},
"edges": {
"quality_edge": 0.405,
"offense_edge": 0.0958,
"opponent_offense_edge": -0.0638,
"defense_strength": 0.1677,
"opponent_defense_weakness": 0.0938,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0238,
"run_prevention": 0.9528,
"strikeout": 1.0173
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808967",
"profile": {
"available": true,
"pitcher_id": "808967",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 25.4,
"bb_percent": 6.0,
"woba": 0.248,
"xwoba": 0.271,
"sweet_spot_percent": 29.4,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 36.9,
"avg_best_speed": 76.6169,
"avg_hyper_speed": 93.9621,
"whiff_percent": 27.2,
"swing_percent": 49.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8752,
"command_and_miss": 0.4886,
"regression_edge": -0.6571,
"xwoba_edge": 1.1429,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.3143,
"bb_edge": 0.8,
"pitch_design_score": 0.0694
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808967",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 100,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 91.11478597119859,
"release_spin_rate": 2175.449780817317,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 100,
"pitch_usage": 0.0,
"release_speed": 91.11478597119859,
"release_spin_rate": 2175.449780817317,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.1148,
"release_spin_rate": 2175.4498,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0694,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4956,
"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.557,
"sample_weight": 1.0,
"run_prevention_factor": 0.9527,
"strikeout_factor": 1.032,
"walk_factor": 0.936,
"homer_factor": 0.9493,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "808967",
"espn_id": 4872587,
"player_name": "Yoshinobu Yamamoto",
"team": "LAD",
"role": "pitcher",
"espn_rank": 10,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 10,
"gp_value": 25.0,
"gp_rank": 317,
"gs_value": 25.0,
"gs_rank": 59,
"qs_value": 19.0,
"qs_rank": 4,
"era_value": 2.6727,
"era_rank": 8.0,
"w_value": 12.0,
"w_rank": 16,
"l_value": 8.0,
"l_rank": 58,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 165.0,
"ip_rank": 13,
"h_value": 110.0,
"h_rank": 102,
"er_value": 49.0,
"er_rank": 105,
"hr_value": 18.0,
"hr_rank": 55,
"bb_value": 38.0,
"bb_rank": 100,
"k_value": 161.0,
"k_rank": 24,
"k_per_9_value": 8.781817,
"k_per_9_rank": 49,
"whip_value": 0.8969,
"whip_rank": 2.0,
"war_value": 4.82,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9527,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9527,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9493,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.032,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"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/20260909_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CLE@BAL | away | Foster Griffin | Foster Griffin | True | 5.2 | 2.1 | -10 | 3 | 8 | 5 | 6/7 | 2/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2557172557172556,
"WHIP": 1.1413721413721414,
"IP": 160.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.726,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0997,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.9857,
"walk_factor": 0.94,
"homer_factor": 1.0346,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 6.2,
"woba": 0.303,
"xwoba": 0.318,
"barrel_percent": 8.9,
"hard_hit_percent": 37.3,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 21,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656492",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 9.0,
"R": 11.0,
"H": 26.0,
"BB": 9.0,
"SO": 20.0,
"HR": 2.0,
"BF": 112.0,
"Pitches": 463.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 2.2,
"H": 5.2,
"BB": 1.8,
"SO": 4.0,
"HR": 0.4,
"BF": 22.4,
"Pitches": 92.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2963,
"ER_per_IP": 0.33333,
"H_per_IP": 0.96296,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 25.0,
"R": 27.0,
"H": 61.0,
"BB": 15.0,
"SO": 42.0,
"HR": 6.0,
"BF": 237.0,
"Pitches": 933.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.7,
"H": 6.1,
"BB": 1.5,
"SO": 4.2,
"HR": 0.6,
"BF": 23.7,
"Pitches": 93.3
},
"rates": {
"ERA": 3.9474,
"WHIP": 1.3333,
"ER_per_IP": 0.4386,
"H_per_IP": 1.07018,
"BB_per_IP": 0.26316,
"SO_per_IP": 0.73684,
"HR_per_IP": 0.10526
}
},
"season": {
"games": 28,
"totals": {
"IP": 160.1,
"ER": 58.0,
"R": 65.0,
"H": 142.0,
"BB": 41.0,
"SO": 142.0,
"HR": 23.0,
"BF": 657.0,
"Pitches": 2605.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0714,
"R": 2.3214,
"H": 5.0714,
"BB": 1.4643,
"SO": 5.0714,
"HR": 0.8214,
"BF": 23.4643,
"Pitches": 93.0357
},
"rates": {
"ERA": 3.2557,
"WHIP": 1.1414,
"ER_per_IP": 0.36175,
"H_per_IP": 0.88565,
"BB_per_IP": 0.25572,
"SO_per_IP": 0.88565,
"HR_per_IP": 0.14345
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.186,
"predicted_H": 5.445,
"predicted_BB": 1.69,
"predicted_SO": 4.4,
"predicted_HR": 0.587,
"predicted_ERA": 3.5514,
"predicted_WHIP": 1.288
}
},
"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.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.186,
"final": 2.523,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.445,
"final": 5.6748,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.69,
"final": 1.8183,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.4,
"final": 4.6484,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.587,
"final": 0.758,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5514,
"final": 3.5514,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.288,
"final": 1.288,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 25,
"H": 61,
"BB": 15,
"SO": 42,
"HR": 6,
"ERA": 3.9473684210526314,
"WHIP": 1.3333333333333333,
"K9": 6.631578947368421,
"HR9": 0.9473684210526315,
"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.9511428354419951,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656492",
"player_name": "Foster Griffin",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 146,
"wins": 74,
"losses": 72,
"win_pct": 0.5068,
"runs_scored": 593.0,
"runs_allowed": 605.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0822,
"avg_runs_scored": 4.0616,
"avg_runs_allowed": 4.1438,
"offense_index": 0.9076,
"defense_index": 1.08,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.7,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0307
},
"opponent": {
"team": "BAL",
"games": 146,
"wins": 70,
"losses": 76,
"win_pct": 0.4795,
"runs_scored": 652.0,
"runs_allowed": 683.0,
"run_differential": -31.0,
"run_differential_per_game": -0.2123,
"avg_runs_scored": 4.4658,
"avg_runs_allowed": 4.6781,
"offense_index": 0.9979,
"defense_index": 0.9567,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1135
},
"edges": {
"quality_edge": 0.1442,
"offense_edge": -0.0924,
"opponent_offense_edge": -0.0021,
"defense_strength": 0.08,
"opponent_defense_weakness": 0.0433,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0083,
"run_prevention": 0.9845,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656492",
"profile": {
"available": true,
"pitcher_id": "656492",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 585.0,
"k_percent": 21.6,
"bb_percent": 6.2,
"woba": 0.303,
"xwoba": 0.318,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 37.3,
"avg_best_speed": 76.4071,
"avg_hyper_speed": 94.0592,
"whiff_percent": 22.9,
"swing_percent": 48.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0784,
"command_and_miss": 0.0193,
"regression_edge": -0.4286,
"xwoba_edge": -0.2,
"barrel_edge": -0.4,
"hard_hit_edge": 0.0857,
"whiff_edge": -0.3,
"bb_edge": 0.75,
"pitch_design_score": -0.2239
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656492",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 85.8782595906004,
"release_spin_rate": 2154.9414767886506,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 85.8782595906004,
"release_spin_rate": 2154.9414767886506,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.8783,
"release_spin_rate": 2154.9415,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2239,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.599,
"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.0997,
"sample_weight": 1.0,
"run_prevention_factor": 1.0085,
"strikeout_factor": 0.9857,
"walk_factor": 0.94,
"homer_factor": 1.0346,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656492",
"espn_id": 33773,
"player_name": "Foster Griffin",
"team": "CLE",
"role": "pitcher",
"espn_rank": 21,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 21,
"gp_value": 28.0,
"gp_rank": 257,
"gs_value": 28.0,
"gs_rank": 21,
"qs_value": 14.0,
"qs_rank": 23,
"era_value": 3.2557,
"era_rank": 18.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 4.0,
"l_rank": 181,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 160.1,
"ip_rank": 21,
"h_value": 142.0,
"h_rank": 28,
"er_value": 58.0,
"er_rank": 69,
"hr_value": 23.0,
"hr_rank": 20,
"bb_value": 41.0,
"bb_rank": 79,
"k_value": 142.0,
"k_rank": 40,
"k_per_9_value": 7.970894,
"k_per_9_rank": 51,
"whip_value": 1.1413,
"whip_rank": 18.0,
"war_value": 3.54,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0085,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0085,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0346,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9857,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260909_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_CLE@BAL | home | Shane Baz | Shane Baz | True | 5.2 | 5.2 | 0 | 1 | 5 | 4 | 4/6 | 4/1 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9122448979591833,
"WHIP": 1.3346938775510204,
"IP": 163.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.833,
"recent_avg_IP": 5.4,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0691,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.9783,
"walk_factor": 0.98,
"homer_factor": 1.0097,
"regression_flag": "neutral",
"k_percent": 20.9,
"bb_percent": 8.2,
"woba": 0.312,
"xwoba": 0.31,
"barrel_percent": 6.6,
"hard_hit_percent": 41.3,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 91,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669358",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 11.0,
"SO": 25.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 2.2,
"SO": 5.0,
"HR": 0.4,
"BF": 23.2,
"Pitches": 88.8
},
"rates": {
"ERA": 4.6667,
"WHIP": 1.4074,
"ER_per_IP": 0.51852,
"H_per_IP": 1.0,
"BB_per_IP": 0.40741,
"SO_per_IP": 0.92593,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 21.0,
"R": 25.0,
"H": 56.0,
"BB": 15.0,
"SO": 55.0,
"HR": 3.0,
"BF": 235.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.5,
"H": 5.6,
"BB": 1.5,
"SO": 5.5,
"HR": 0.3,
"BF": 23.5,
"Pitches": 90.7
},
"rates": {
"ERA": 3.355,
"WHIP": 1.2604,
"ER_per_IP": 0.37278,
"H_per_IP": 0.99408,
"BB_per_IP": 0.26627,
"SO_per_IP": 0.97633,
"HR_per_IP": 0.05325
}
},
"season": {
"games": 28,
"totals": {
"IP": 163.1,
"ER": 71.0,
"R": 81.0,
"H": 161.0,
"BB": 57.0,
"SO": 145.0,
"HR": 12.0,
"BF": 695.0,
"Pitches": 2651.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5357,
"R": 2.8929,
"H": 5.75,
"BB": 2.0357,
"SO": 5.1786,
"HR": 0.4286,
"BF": 24.8214,
"Pitches": 94.6786
},
"rates": {
"ERA": 3.9122,
"WHIP": 1.3347,
"ER_per_IP": 0.43469,
"H_per_IP": 0.98571,
"BB_per_IP": 0.34898,
"SO_per_IP": 0.88776,
"HR_per_IP": 0.07347
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.564,
"predicted_H": 5.548,
"predicted_BB": 1.959,
"predicted_SO": 5.241,
"predicted_HR": 0.44,
"predicted_ERA": 4.1233,
"predicted_WHIP": 1.3416
}
},
"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.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.564,
"final": 1.9165,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.548,
"final": 4.9071,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.959,
"final": 2.804,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.241,
"final": 3.8992,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.44,
"final": 0.6718,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1233,
"final": 4.1233,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3416,
"final": 1.3416,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 21,
"H": 56,
"BB": 15,
"SO": 55,
"HR": 3,
"ERA": 3.355029585798817,
"WHIP": 1.2603550295857988,
"K9": 8.786982248520712,
"HR9": 0.4792899408284024,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.8826802588822527,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669358",
"player_name": "Shane Baz",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 146,
"wins": 70,
"losses": 76,
"win_pct": 0.4795,
"runs_scored": 652.0,
"runs_allowed": 683.0,
"run_differential": -31.0,
"run_differential_per_game": -0.2123,
"avg_runs_scored": 4.4658,
"avg_runs_allowed": 4.6781,
"offense_index": 0.9979,
"defense_index": 0.9567,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.4,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.1135
},
"opponent": {
"team": "CLE",
"games": 146,
"wins": 74,
"losses": 72,
"win_pct": 0.5068,
"runs_scored": 593.0,
"runs_allowed": 605.0,
"run_differential": -12.0,
"run_differential_per_game": -0.0822,
"avg_runs_scored": 4.0616,
"avg_runs_allowed": 4.1438,
"offense_index": 0.9076,
"defense_index": 1.08,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.7,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0307
},
"edges": {
"quality_edge": -0.1442,
"offense_edge": -0.0021,
"opponent_offense_edge": -0.0924,
"defense_strength": -0.0433,
"opponent_defense_weakness": -0.08,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9966,
"run_prevention": 0.9968,
"strikeout": 1.0031
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669358",
"profile": {
"available": true,
"pitcher_id": "669358",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 596.0,
"k_percent": 20.9,
"bb_percent": 8.2,
"woba": 0.312,
"xwoba": 0.31,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 41.3,
"avg_best_speed": 79.8881,
"avg_hyper_speed": 94.3736,
"whiff_percent": 22.3,
"swing_percent": 48.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0684,
"command_and_miss": -0.1557,
"regression_edge": 0.0571,
"xwoba_edge": 0.0286,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.4857,
"whiff_edge": -0.3857,
"bb_edge": 0.25,
"pitch_design_score": 0.0496
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669358",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.76192251441194,
"release_spin_rate": 2407.5287280515663,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.7619,
"release_spin_rate": 2407.5287,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0496,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3545,
"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.0691,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.9783,
"walk_factor": 0.98,
"homer_factor": 1.0097,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669358",
"espn_id": 39639,
"player_name": "Shane Baz",
"team": "BAL",
"role": "pitcher",
"espn_rank": 91,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 91,
"gp_value": 28.0,
"gp_rank": 257,
"gs_value": 28.0,
"gs_rank": 21,
"qs_value": 12.0,
"qs_rank": 33,
"era_value": 3.9122,
"era_rank": 29.0,
"w_value": 5.0,
"w_rank": 143,
"l_value": 15.0,
"l_rank": 1,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 163.1,
"ip_rank": 15,
"h_value": 161.0,
"h_rank": 7,
"er_value": 71.0,
"er_rank": 23,
"hr_value": 12.0,
"hr_rank": 132,
"bb_value": 57.0,
"bb_rank": 19,
"k_value": 145.0,
"k_rank": 33,
"k_per_9_value": 7.989796,
"k_per_9_rank": 59,
"whip_value": 1.3346,
"whip_rank": 39.0,
"war_value": 1.76,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0059,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0059,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0097,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9783,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260909_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_COL@NYY | away | Tomoyuki Sugano | Tomoyuki Sugano | True | 4.2 | 6.0 | 4 | 3 | 5 | 2 | 3/4 | 2/3 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.19493670886076,
"WHIP": 1.3518987341772153,
"IP": 131.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.267,
"recent_avg_IP": 4.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.0765,
"sample_weight": 1.0,
"run_prevention_factor": 1.0915,
"strikeout_factor": 0.9154,
"walk_factor": 0.922,
"homer_factor": 1.1907,
"regression_flag": "neutral",
"k_percent": 14.0,
"bb_percent": 5.3,
"woba": 0.362,
"xwoba": 0.389,
"barrel_percent": 12.3,
"hard_hit_percent": 43.4,
"whiff_percent": 18.2
},
"espn_rank": {
"rank": 121,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608372",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 22.0,
"R": 23.0,
"H": 38.0,
"BB": 4.0,
"SO": 18.0,
"HR": 5.0,
"BF": 115.0,
"Pitches": 455.0
},
"per_game": {
"IP": 4.2,
"ER": 4.4,
"R": 4.6,
"H": 7.6,
"BB": 0.8,
"SO": 3.6,
"HR": 1.0,
"BF": 23.0,
"Pitches": 91.0
},
"rates": {
"ERA": 8.25,
"WHIP": 1.75,
"ER_per_IP": 0.91667,
"H_per_IP": 1.58333,
"BB_per_IP": 0.16667,
"SO_per_IP": 0.75,
"HR_per_IP": 0.20833
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 38.0,
"R": 39.0,
"H": 68.0,
"BB": 8.0,
"SO": 33.0,
"HR": 13.0,
"BF": 231.0,
"Pitches": 878.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8,
"R": 3.9,
"H": 6.8,
"BB": 0.8,
"SO": 3.3,
"HR": 1.3,
"BF": 23.1,
"Pitches": 87.8
},
"rates": {
"ERA": 6.535,
"WHIP": 1.4522,
"ER_per_IP": 0.72611,
"H_per_IP": 1.29936,
"BB_per_IP": 0.15287,
"SO_per_IP": 0.63057,
"HR_per_IP": 0.24841
}
},
"season": {
"games": 25,
"totals": {
"IP": 131.2,
"ER": 76.0,
"R": 79.0,
"H": 148.0,
"BB": 30.0,
"SO": 79.0,
"HR": 27.0,
"BF": 566.0,
"Pitches": 2173.0
},
"per_game": {
"IP": 5.1,
"ER": 3.04,
"R": 3.16,
"H": 5.92,
"BB": 1.2,
"SO": 3.16,
"HR": 1.08,
"BF": 22.64,
"Pitches": 86.92
},
"rates": {
"ERA": 5.1949,
"WHIP": 1.3519,
"ER_per_IP": 0.57722,
"H_per_IP": 1.12405,
"BB_per_IP": 0.22785,
"SO_per_IP": 0.6,
"HR_per_IP": 0.20506
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.695,
"predicted_H": 6.647,
"predicted_BB": 1.04,
"predicted_SO": 3.629,
"predicted_HR": 1.051,
"predicted_ERA": 6.6149,
"predicted_WHIP": 1.5289
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.695,
"final": 3.8232,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 6.647,
"final": 5.1137,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.04,
"final": 1.4436,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.629,
"final": 5.0463,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.051,
"final": 1.0296,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.6149,
"final": 6.6149,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5289,
"final": 1.5289,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 38,
"H": 68,
"BB": 8,
"SO": 33,
"HR": 13,
"ERA": 6.535031847133758,
"WHIP": 1.4522292993630572,
"K9": 5.675159235668789,
"HR9": 2.235668789808917,
"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-02T00:00:00"
},
"recent_form_boost": 1.245227370026865,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608372",
"player_name": "Tomoyuki Sugano",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": 144,
"wins": 55,
"losses": 89,
"win_pct": 0.3819,
"runs_scored": 682.0,
"runs_allowed": 824.0,
"run_differential": -142.0,
"run_differential_per_game": -0.9861,
"avg_runs_scored": 4.7361,
"avg_runs_allowed": 5.7222,
"offense_index": 1.0581,
"defense_index": 0.7823,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.9,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2915
},
"opponent": {
"team": "NYY",
"games": 144,
"wins": 82,
"losses": 62,
"win_pct": 0.5694,
"runs_scored": 651.0,
"runs_allowed": 532.0,
"run_differential": 119.0,
"run_differential_per_game": 0.8264,
"avg_runs_scored": 4.5208,
"avg_runs_allowed": 3.6944,
"offense_index": 1.01,
"defense_index": 1.2116,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1955
},
"edges": {
"quality_edge": -0.487,
"offense_edge": 0.0581,
"opponent_offense_edge": 0.01,
"defense_strength": -0.2177,
"opponent_defense_weakness": -0.2116,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9736,
"run_prevention": 1.0477,
"strikeout": 0.9846
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608372",
"profile": {
"available": true,
"pitcher_id": "608372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 487.0,
"k_percent": 14.0,
"bb_percent": 5.3,
"woba": 0.362,
"xwoba": 0.389,
"sweet_spot_percent": 38.1,
"barrel_batted_rate": 12.3,
"hard_hit_percent": 43.4,
"avg_best_speed": 80.7357,
"avg_hyper_speed": 95.1726,
"whiff_percent": 18.2,
"swing_percent": 46.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.4657,
"command_and_miss": -0.6593,
"regression_edge": -0.7714,
"xwoba_edge": -2.2286,
"barrel_edge": -1.1556,
"hard_hit_edge": -0.7857,
"whiff_edge": -0.9714,
"bb_edge": 0.975,
"pitch_design_score": -0.0898
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608372",
"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": 88.27152055516693,
"release_spin_rate": 2295.6362856997916,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 88.27152055516693,
"release_spin_rate": 2295.6362856997916,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.2715,
"release_spin_rate": 2295.6363,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0898,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6417,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -1.0765,
"sample_weight": 1.0,
"run_prevention_factor": 1.0915,
"strikeout_factor": 0.9154,
"walk_factor": 0.922,
"homer_factor": 1.1907,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608372",
"espn_id": 4142423,
"player_name": "Tomoyuki Sugano",
"team": "COL",
"role": "pitcher",
"espn_rank": 121,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 121,
"gp_value": 25.0,
"gp_rank": 317,
"gs_value": 25.0,
"gs_rank": 59,
"qs_value": 8.0,
"qs_rank": 75,
"era_value": 5.1949,
"era_rank": null,
"w_value": 12.0,
"w_rank": 16,
"l_value": 8.0,
"l_rank": 58,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 131.2,
"ip_rank": 75,
"h_value": 148.0,
"h_rank": 20,
"er_value": 76.0,
"er_rank": 16,
"hr_value": 27.0,
"hr_rank": 5,
"bb_value": 30.0,
"bb_rank": 162,
"k_value": 79.0,
"k_rank": 156,
"k_per_9_value": 5.3999996,
"k_per_9_rank": 56,
"whip_value": 1.3518,
"whip_rank": null,
"war_value": 1.52,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0915,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0915,
"adjusted": 8
},
"predicted_BB": {
"original": 1.0,
"factor": 0.922,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1907,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9154,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 87,
"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/20260909_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"
}
} |
| 20260909 | 20260909_COL@NYY | home | Will Warren | Will Warren | True | 5.0 | 6.0 | 3 | 4 | 1 | -3 | 3/4 | 2/2 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.158924205378973,
"WHIP": 1.3789731051344742,
"IP": 136.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.128,
"recent_avg_IP": 5.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2318,
"sample_weight": 1.0,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9863,
"walk_factor": 0.974,
"homer_factor": 1.0597,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 7.9,
"woba": 0.335,
"xwoba": 0.327,
"barrel_percent": 7.6,
"hard_hit_percent": 44.4,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 214,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "701542",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.1,
"ER": 10.0,
"R": 11.0,
"H": 22.0,
"BB": 10.0,
"SO": 19.0,
"HR": 5.0,
"BF": 98.0,
"Pitches": 394.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.2,
"H": 4.4,
"BB": 2.0,
"SO": 3.8,
"HR": 1.0,
"BF": 19.6,
"Pitches": 78.8
},
"rates": {
"ERA": 4.0299,
"WHIP": 1.4328,
"ER_per_IP": 0.44776,
"H_per_IP": 0.98507,
"BB_per_IP": 0.44776,
"SO_per_IP": 0.85075,
"HR_per_IP": 0.22388
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 20.0,
"R": 21.0,
"H": 44.0,
"BB": 16.0,
"SO": 39.0,
"HR": 7.0,
"BF": 184.0,
"Pitches": 740.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.1,
"H": 4.4,
"BB": 1.6,
"SO": 3.9,
"HR": 0.7,
"BF": 18.4,
"Pitches": 74.0
},
"rates": {
"ERA": 4.186,
"WHIP": 1.3953,
"ER_per_IP": 0.46512,
"H_per_IP": 1.02326,
"BB_per_IP": 0.37209,
"SO_per_IP": 0.90698,
"HR_per_IP": 0.16279
}
},
"season": {
"games": 28,
"totals": {
"IP": 136.1,
"ER": 63.0,
"R": 76.0,
"H": 141.0,
"BB": 47.0,
"SO": 133.0,
"HR": 20.0,
"BF": 594.0,
"Pitches": 2318.0
},
"per_game": {
"IP": 5.0,
"ER": 2.25,
"R": 2.7143,
"H": 5.0357,
"BB": 1.6786,
"SO": 4.75,
"HR": 0.7143,
"BF": 21.2143,
"Pitches": 82.7857
},
"rates": {
"ERA": 4.1589,
"WHIP": 1.379,
"ER_per_IP": 0.4621,
"H_per_IP": 1.03423,
"BB_per_IP": 0.34474,
"SO_per_IP": 0.97555,
"HR_per_IP": 0.1467
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.106,
"predicted_H": 4.56,
"predicted_BB": 1.802,
"predicted_SO": 4.102,
"predicted_HR": 0.822,
"predicted_ERA": 4.1688,
"predicted_WHIP": 1.3989
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.106,
"final": 2.8901,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.56,
"final": 3.9141,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.802,
"final": 1.884,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.102,
"final": 4.4738,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.822,
"final": 0.4817,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1688,
"final": 4.1688,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3989,
"final": 1.3989,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 20,
"H": 44,
"BB": 16,
"SO": 39,
"HR": 7,
"ERA": 4.186046511627907,
"WHIP": 1.3953488372093024,
"K9": 8.162790697674419,
"HR9": 1.4651162790697674,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9795445082286127,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 2.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "701542",
"player_name": "Will Warren",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 144,
"wins": 82,
"losses": 62,
"win_pct": 0.5694,
"runs_scored": 651.0,
"runs_allowed": 532.0,
"run_differential": 119.0,
"run_differential_per_game": 0.8264,
"avg_runs_scored": 4.5208,
"avg_runs_allowed": 3.6944,
"offense_index": 1.01,
"defense_index": 1.2116,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1955
},
"opponent": {
"team": "COL",
"games": 144,
"wins": 55,
"losses": 89,
"win_pct": 0.3819,
"runs_scored": 682.0,
"runs_allowed": 824.0,
"run_differential": -142.0,
"run_differential_per_game": -0.9861,
"avg_runs_scored": 4.7361,
"avg_runs_allowed": 5.7222,
"offense_index": 1.0581,
"defense_index": 0.7823,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.9,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.2915
},
"edges": {
"quality_edge": 0.487,
"offense_edge": 0.01,
"opponent_offense_edge": 0.0581,
"defense_strength": 0.2116,
"opponent_defense_weakness": 0.2177,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0235,
"run_prevention": 0.9638,
"strikeout": 1.01
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701542",
"profile": {
"available": true,
"pitcher_id": "701542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 532.0,
"k_percent": 22.4,
"bb_percent": 7.9,
"woba": 0.335,
"xwoba": 0.327,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 44.4,
"avg_best_speed": 80.6379,
"avg_hyper_speed": 95.0983,
"whiff_percent": 22.2,
"swing_percent": 44.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4351,
"command_and_miss": -0.0493,
"regression_edge": 0.2286,
"xwoba_edge": -0.4571,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.9286,
"whiff_edge": -0.4,
"bb_edge": 0.325,
"pitch_design_score": 0.0232
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701542",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.29017897188778,
"release_spin_rate": 2501.6864996074655,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.29017897188778,
"release_spin_rate": 2501.6864996074655,
"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.2902,
"release_spin_rate": 2501.6865,
"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.0232,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1658,
"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.2318,
"sample_weight": 1.0,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9863,
"walk_factor": 0.974,
"homer_factor": 1.0597,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "701542",
"espn_id": 5132011,
"player_name": "Will Warren",
"team": "NYY",
"role": "pitcher",
"espn_rank": 214,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 214,
"gp_value": 28.0,
"gp_rank": 257,
"gs_value": 26.0,
"gs_rank": 52,
"qs_value": 7.0,
"qs_rank": 81,
"era_value": 4.1589,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 6.0,
"l_rank": 111,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 136.1,
"ip_rank": 66,
"h_value": 141.0,
"h_rank": 31,
"er_value": 63.0,
"er_rank": 53,
"hr_value": 20.0,
"hr_rank": 37,
"bb_value": 47.0,
"bb_rank": 50,
"k_value": 133.0,
"k_rank": 50,
"k_per_9_value": 8.779951,
"k_per_9_rank": 20,
"whip_value": 1.3789,
"whip_rank": null,
"war_value": 0.76,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0197,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0197,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0597,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9863,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"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": "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/20260909_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"
}
} |
| 20260909 | 20260909_HOU@PHI | away | Hunter Brown | Hunter Brown | True | 5.2 | 5.0 | -2 | 4 | 4 | 0 | 2/7 | 3/0 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.310344827586207,
"WHIP": 1.2988505747126438,
"IP": 87.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.438,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3386,
"sample_weight": 1.0,
"run_prevention_factor": 0.9712,
"strikeout_factor": 1.0251,
"walk_factor": 1.068,
"homer_factor": 0.9629,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 12.6,
"woba": 0.3,
"xwoba": 0.291,
"barrel_percent": 6.3,
"hard_hit_percent": 36.9,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 78,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686613",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 9.0,
"R": 9.0,
"H": 26.0,
"BB": 14.0,
"SO": 30.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 483.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 2.8,
"SO": 6.0,
"HR": 0.6,
"BF": 23.8,
"Pitches": 96.6
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.4118,
"ER_per_IP": 0.31765,
"H_per_IP": 0.91765,
"BB_per_IP": 0.49412,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 21.0,
"R": 21.0,
"H": 44.0,
"BB": 29.0,
"SO": 58.0,
"HR": 6.0,
"BF": 237.0,
"Pitches": 960.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.1,
"H": 4.4,
"BB": 2.9,
"SO": 5.8,
"HR": 0.6,
"BF": 23.7,
"Pitches": 96.0
},
"rates": {
"ERA": 3.2775,
"WHIP": 1.2659,
"ER_per_IP": 0.36416,
"H_per_IP": 0.76301,
"BB_per_IP": 0.50289,
"SO_per_IP": 1.00578,
"HR_per_IP": 0.10405
}
},
"season": {
"games": 16,
"totals": {
"IP": 87.0,
"ER": 32.0,
"R": 34.0,
"H": 67.0,
"BB": 46.0,
"SO": 93.0,
"HR": 10.0,
"BF": 365.0,
"Pitches": 1502.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.125,
"H": 4.1875,
"BB": 2.875,
"SO": 5.8125,
"HR": 0.625,
"BF": 22.8125,
"Pitches": 93.875
},
"rates": {
"ERA": 3.3103,
"WHIP": 1.2989,
"ER_per_IP": 0.36782,
"H_per_IP": 0.77011,
"BB_per_IP": 0.52874,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.11494
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.14,
"predicted_H": 4.868,
"predicted_BB": 2.653,
"predicted_SO": 5.716,
"predicted_HR": 0.653,
"predicted_ERA": 3.4291,
"predicted_WHIP": 1.3392
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.14,
"final": 2.9781,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.868,
"final": 3.5757,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.653,
"final": 2.8094,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.716,
"final": 6.2946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.653,
"final": 1.26,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4291,
"final": 3.4291,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3392,
"final": 1.3392,
"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": 21,
"H": 44,
"BB": 29,
"SO": 58,
"HR": 6,
"ERA": 3.2774566473988442,
"WHIP": 1.2658959537572254,
"K9": 9.052023121387284,
"HR9": 0.9364161849710984,
"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-03T00:00:00"
},
"recent_form_boost": 0.8740918264165414,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686613",
"player_name": "Hunter Brown",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 145,
"wins": 74,
"losses": 71,
"win_pct": 0.5103,
"runs_scored": 653.0,
"runs_allowed": 690.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2552,
"avg_runs_scored": 4.5034,
"avg_runs_allowed": 4.7586,
"offense_index": 1.0063,
"defense_index": 0.9405,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.2,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0124
},
"opponent": {
"team": "PHI",
"games": 145,
"wins": 81,
"losses": 64,
"win_pct": 0.5586,
"runs_scored": 647.0,
"runs_allowed": 613.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2345,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 4.2276,
"offense_index": 0.997,
"defense_index": 1.0586,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.5,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1136
},
"edges": {
"quality_edge": -0.1012,
"offense_edge": 0.0063,
"opponent_offense_edge": -0.003,
"defense_strength": -0.0595,
"opponent_defense_weakness": -0.0586,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9943,
"run_prevention": 1.0105,
"strikeout": 0.9972
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686613",
"profile": {
"available": true,
"pitcher_id": "686613",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 291.0,
"k_percent": 25.5,
"bb_percent": 12.6,
"woba": 0.3,
"xwoba": 0.291,
"sweet_spot_percent": 27.9,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 36.9,
"avg_best_speed": 73.7698,
"avg_hyper_speed": 93.1817,
"whiff_percent": 25.9,
"swing_percent": 41.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4929,
"command_and_miss": 0.1,
"regression_edge": 0.2571,
"xwoba_edge": 0.5714,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.1286,
"bb_edge": -0.85,
"pitch_design_score": 0.1355
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686613",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 92.29605869429095,
"release_spin_rate": 2200.9095575606843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 92.29605869429095,
"release_spin_rate": 2200.9095575606843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.2961,
"release_spin_rate": 2200.9096,
"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.1355,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9681,
"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.3386,
"sample_weight": 1.0,
"run_prevention_factor": 0.9712,
"strikeout_factor": 1.0251,
"walk_factor": 1.068,
"homer_factor": 0.9629,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "686613",
"espn_id": 4717803,
"player_name": "Hunter Brown",
"team": "HOU",
"role": "pitcher",
"espn_rank": 78,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 78,
"gp_value": 16.0,
"gp_rank": 447,
"gs_value": 16.0,
"gs_rank": 130,
"qs_value": 7.0,
"qs_rank": 81,
"era_value": 3.3103,
"era_rank": null,
"w_value": 5.0,
"w_rank": 143,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 87.0,
"ip_rank": 146,
"h_value": 67.0,
"h_rank": 172,
"er_value": 32.0,
"er_rank": 175,
"hr_value": 10.0,
"hr_rank": 158,
"bb_value": 46.0,
"bb_rank": 56,
"k_value": 93.0,
"k_rank": 115,
"k_per_9_value": 9.620689,
"k_per_9_rank": 21,
"whip_value": 1.2988,
"whip_rank": null,
"war_value": 1.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9712,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9712,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.068,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9629,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0251,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_HOU@PHI | home | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 6.0 | -1 | 2 | 6 | 4 | 4/10 | 2/0 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.580882352941176,
"WHIP": 1.196691176470588,
"IP": 181.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 6.253,
"recent_avg_IP": 6.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5312,
"sample_weight": 1.0,
"run_prevention_factor": 0.9548,
"strikeout_factor": 1.0731,
"walk_factor": 0.928,
"homer_factor": 0.985,
"regression_flag": "neutral",
"k_percent": 27.5,
"bb_percent": 5.6,
"woba": 0.288,
"xwoba": 0.279,
"barrel_percent": 6.8,
"hard_hit_percent": 41.0,
"whiff_percent": 32.3
},
"espn_rank": {
"rank": 1,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650911",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 8.0,
"R": 8.0,
"H": 28.0,
"BB": 7.0,
"SO": 33.0,
"HR": 1.0,
"BF": 126.0,
"Pitches": 481.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 5.6,
"BB": 1.4,
"SO": 6.6,
"HR": 0.2,
"BF": 25.2,
"Pitches": 96.2
},
"rates": {
"ERA": 2.2737,
"WHIP": 1.1053,
"ER_per_IP": 0.25263,
"H_per_IP": 0.88421,
"BB_per_IP": 0.22105,
"SO_per_IP": 1.04211,
"HR_per_IP": 0.03158
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.0,
"ER": 17.0,
"R": 18.0,
"H": 59.0,
"BB": 18.0,
"SO": 70.0,
"HR": 3.0,
"BF": 256.0,
"Pitches": 981.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.8,
"H": 5.9,
"BB": 1.8,
"SO": 7.0,
"HR": 0.3,
"BF": 25.6,
"Pitches": 98.1
},
"rates": {
"ERA": 2.5082,
"WHIP": 1.2623,
"ER_per_IP": 0.27869,
"H_per_IP": 0.96721,
"BB_per_IP": 0.29508,
"SO_per_IP": 1.14754,
"HR_per_IP": 0.04918
}
},
"season": {
"games": 29,
"totals": {
"IP": 181.1,
"ER": 52.0,
"R": 58.0,
"H": 175.0,
"BB": 42.0,
"SO": 207.0,
"HR": 14.0,
"BF": 752.0,
"Pitches": 2781.0
},
"per_game": {
"IP": 6.1,
"ER": 1.7931,
"R": 2.0,
"H": 6.0345,
"BB": 1.4483,
"SO": 7.1379,
"HR": 0.4828,
"BF": 25.931,
"Pitches": 95.8966
},
"rates": {
"ERA": 2.5809,
"WHIP": 1.1967,
"ER_per_IP": 0.28676,
"H_per_IP": 0.96507,
"BB_per_IP": 0.23162,
"SO_per_IP": 1.14154,
"HR_per_IP": 0.07721
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.886,
"predicted_H": 5.832,
"predicted_BB": 1.665,
"predicted_SO": 6.704,
"predicted_HR": 0.383,
"predicted_ERA": 2.723,
"predicted_WHIP": 1.2027
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.886,
"final": 1.933,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.832,
"final": 5.0769,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.665,
"final": 1.8031,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.704,
"final": 6.4138,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.383,
"final": 0.2251,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.723,
"final": 2.723,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2027,
"final": 1.2027,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.0,
"ER": 17,
"H": 59,
"BB": 18,
"SO": 70,
"HR": 3,
"ERA": 2.5081967213114753,
"WHIP": 1.262295081967213,
"K9": 10.327868852459016,
"HR9": 0.44262295081967207,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.7874600629369619,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 145,
"wins": 81,
"losses": 64,
"win_pct": 0.5586,
"runs_scored": 647.0,
"runs_allowed": 613.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2345,
"avg_runs_scored": 4.4621,
"avg_runs_allowed": 4.2276,
"offense_index": 0.997,
"defense_index": 1.0586,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.5,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1136
},
"opponent": {
"team": "HOU",
"games": 145,
"wins": 74,
"losses": 71,
"win_pct": 0.5103,
"runs_scored": 653.0,
"runs_allowed": 690.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2552,
"avg_runs_scored": 4.5034,
"avg_runs_allowed": 4.7586,
"offense_index": 1.0063,
"defense_index": 0.9405,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.2,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0124
},
"edges": {
"quality_edge": 0.1012,
"offense_edge": -0.003,
"opponent_offense_edge": 0.0063,
"defense_strength": 0.0586,
"opponent_defense_weakness": 0.0595,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0056,
"run_prevention": 0.9901,
"strikeout": 1.0025
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 670.0,
"k_percent": 27.5,
"bb_percent": 5.6,
"woba": 0.288,
"xwoba": 0.279,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.9155,
"avg_hyper_speed": 94.3218,
"whiff_percent": 32.3,
"swing_percent": 50.4
},
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4813,
"command_and_miss": 0.8986,
"regression_edge": 0.2571,
"xwoba_edge": 0.9143,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.4429,
"whiff_edge": 1.0429,
"bb_edge": 0.9,
"pitch_design_score": 0.0291
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 90.39508390967275,
"release_spin_rate": 2081.2610513716268,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.3951,
"release_spin_rate": 2081.2611,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0291,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2077,
"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.5312,
"sample_weight": 1.0,
"run_prevention_factor": 0.9548,
"strikeout_factor": 1.0731,
"walk_factor": 0.928,
"homer_factor": 0.985,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650911",
"espn_id": 42359,
"player_name": "Cristopher Sanchez",
"team": "PHI",
"role": "pitcher",
"espn_rank": 1,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 1,
"gp_value": 29.0,
"gp_rank": 230,
"gs_value": 29.0,
"gs_rank": 7,
"qs_value": 20.0,
"qs_rank": 2,
"era_value": 2.5808,
"era_rank": 7.0,
"w_value": 16.0,
"w_rank": 2,
"l_value": 5.0,
"l_rank": 135,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 181.1,
"ip_rank": 3,
"h_value": 175.0,
"h_rank": 5,
"er_value": 52.0,
"er_rank": 98,
"hr_value": 14.0,
"hr_rank": 107,
"bb_value": 42.0,
"bb_rank": 71,
"k_value": 207.0,
"k_rank": 6,
"k_per_9_value": 10.273897,
"k_per_9_rank": 54,
"whip_value": 1.1966,
"whip_rank": 26.0,
"war_value": 7.67,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9548,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9548,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.928,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.985,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0731,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_LAA@BOS | away | Ryan Johnson | Ryan Johnson | True | 5.1 | 6.0 | 2 | 4 | 3 | -1 | 4/5 | 3/1 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.170212765957447,
"WHIP": 1.3914893617021278,
"IP": 78.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.889,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5139,
"sample_weight": 1.0,
"run_prevention_factor": 1.0437,
"strikeout_factor": 0.9617,
"walk_factor": 1.04,
"homer_factor": 1.081,
"regression_flag": "neutral",
"k_percent": 17.1,
"bb_percent": 11.2,
"woba": 0.338,
"xwoba": 0.35,
"barrel_percent": 10.0,
"hard_hit_percent": 37.2,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 677,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696270",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 5.0,
"R": 5.0,
"H": 15.0,
"BB": 13.0,
"SO": 20.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 434.0
},
"per_game": {
"IP": 5.2,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 2.6,
"SO": 4.0,
"HR": 0.6,
"BF": 21.6,
"Pitches": 86.8
},
"rates": {
"ERA": 1.6265,
"WHIP": 1.012,
"ER_per_IP": 0.18072,
"H_per_IP": 0.54217,
"BB_per_IP": 0.46988,
"SO_per_IP": 0.72289,
"HR_per_IP": 0.10843
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 23.0,
"R": 23.0,
"H": 37.0,
"BB": 28.0,
"SO": 34.0,
"HR": 8.0,
"BF": 208.0,
"Pitches": 835.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.3,
"H": 3.7,
"BB": 2.8,
"SO": 3.4,
"HR": 0.8,
"BF": 20.8,
"Pitches": 83.5
},
"rates": {
"ERA": 4.14,
"WHIP": 1.3,
"ER_per_IP": 0.46,
"H_per_IP": 0.74,
"BB_per_IP": 0.56,
"SO_per_IP": 0.68,
"HR_per_IP": 0.16
}
},
"season": {
"games": 18,
"totals": {
"IP": 78.1,
"ER": 45.0,
"R": 50.0,
"H": 71.0,
"BB": 38.0,
"SO": 58.0,
"HR": 16.0,
"BF": 339.0,
"Pitches": 1352.0
},
"per_game": {
"IP": 4.1,
"ER": 2.5,
"R": 2.7778,
"H": 3.9444,
"BB": 2.1111,
"SO": 3.2222,
"HR": 0.8889,
"BF": 18.8333,
"Pitches": 75.1111
},
"rates": {
"ERA": 5.1702,
"WHIP": 1.3915,
"ER_per_IP": 0.57447,
"H_per_IP": 0.90638,
"BB_per_IP": 0.48511,
"SO_per_IP": 0.74043,
"HR_per_IP": 0.20426
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.02,
"predicted_H": 3.885,
"predicted_BB": 2.474,
"predicted_SO": 3.959,
"predicted_HR": 0.758,
"predicted_ERA": 3.4935,
"predicted_WHIP": 1.2222
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.02,
"final": 2.8949,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.885,
"final": 3.9358,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.474,
"final": 2.7064,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.959,
"final": 4.8608,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.758,
"final": 0.4231,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4935,
"final": 3.4935,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2222,
"final": 1.2222,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 23,
"H": 37,
"BB": 28,
"SO": 34,
"HR": 8,
"ERA": 4.14,
"WHIP": 1.3,
"K9": 6.12,
"HR9": 1.44,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9719805547402406,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696270",
"player_name": "Ryan Johnson",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 145,
"wins": 55,
"losses": 90,
"win_pct": 0.3793,
"runs_scored": 585.0,
"runs_allowed": 660.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5172,
"avg_runs_scored": 4.0345,
"avg_runs_allowed": 4.5517,
"offense_index": 0.9015,
"defense_index": 0.9832,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.2,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.2362
},
"opponent": {
"team": "BOS",
"games": 146,
"wins": 80,
"losses": 66,
"win_pct": 0.5479,
"runs_scored": 648.0,
"runs_allowed": 564.0,
"run_differential": 84.0,
"run_differential_per_game": 0.5753,
"avg_runs_scored": 4.4384,
"avg_runs_allowed": 3.863,
"offense_index": 0.9917,
"defense_index": 1.1585,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": 0.1464
},
"edges": {
"quality_edge": -0.3826,
"offense_edge": -0.0985,
"opponent_offense_edge": -0.0083,
"defense_strength": -0.0168,
"opponent_defense_weakness": -0.1585,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9845,
"run_prevention": 1.0195,
"strikeout": 0.9892
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696270",
"profile": {
"available": true,
"pitcher_id": "696270",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 271.0,
"k_percent": 17.1,
"bb_percent": 11.2,
"woba": 0.338,
"xwoba": 0.35,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 37.2,
"avg_best_speed": 77.1049,
"avg_hyper_speed": 93.828,
"whiff_percent": 23.2,
"swing_percent": 45.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5996,
"command_and_miss": -0.505,
"regression_edge": -0.3429,
"xwoba_edge": -1.1143,
"barrel_edge": -0.6444,
"hard_hit_edge": 0.1,
"whiff_edge": -0.2571,
"bb_edge": -0.5,
"pitch_design_score": -0.1569
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 87.07415991966134,
"release_spin_rate": 2270.636552773629,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.0742,
"release_spin_rate": 2270.6366,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1569,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1206,
"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.5139,
"sample_weight": 1.0,
"run_prevention_factor": 1.0437,
"strikeout_factor": 0.9617,
"walk_factor": 1.04,
"homer_factor": 1.081,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696270",
"espn_id": 5007859,
"player_name": "Ryan Johnson",
"team": "LAA",
"role": "pitcher",
"espn_rank": 677,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 677,
"gp_value": 18.0,
"gp_rank": 413,
"gs_value": 15.0,
"gs_rank": 134,
"qs_value": 3.0,
"qs_rank": 139,
"era_value": 5.1702,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 8.0,
"l_rank": 58,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 78.1,
"ip_rank": 164,
"h_value": 71.0,
"h_rank": 157,
"er_value": 45.0,
"er_rank": 127,
"hr_value": 16.0,
"hr_rank": 81,
"bb_value": 38.0,
"bb_rank": 100,
"k_value": 58.0,
"k_rank": 235,
"k_per_9_value": 6.66383,
"k_per_9_rank": 38,
"whip_value": 1.3914,
"whip_rank": null,
"war_value": -0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0437,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0437,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.04,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.081,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9617,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"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/20260909_LAA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_LAA@BOS | home | Jake Bennett | Jake Bennett | True | 5.2 | 5.1 | -1 | 3 | 6 | 3 | 7/9 | 1/1 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.341137123745819,
"WHIP": 1.0234113712374582,
"IP": 99.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.863,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.346,
"sample_weight": 1.0,
"run_prevention_factor": 0.9706,
"strikeout_factor": 0.9874,
"walk_factor": 0.908,
"homer_factor": 0.974,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 4.6,
"woba": 0.264,
"xwoba": 0.279,
"barrel_percent": 7.5,
"hard_hit_percent": 36.9,
"whiff_percent": 24.3
},
"espn_rank": {
"rank": 83,
"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": "687562",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 14.0,
"R": 15.0,
"H": 25.0,
"BB": 5.0,
"SO": 31.0,
"HR": 4.0,
"BF": 115.0,
"Pitches": 405.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 3.0,
"H": 5.0,
"BB": 1.0,
"SO": 6.2,
"HR": 0.8,
"BF": 23.0,
"Pitches": 81.0
},
"rates": {
"ERA": 4.4471,
"WHIP": 1.0588,
"ER_per_IP": 0.49412,
"H_per_IP": 0.88235,
"BB_per_IP": 0.17647,
"SO_per_IP": 1.09412,
"HR_per_IP": 0.14118
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 23.0,
"R": 24.0,
"H": 51.0,
"BB": 11.0,
"SO": 50.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 810.0
},
"per_game": {
"IP": 6.0,
"ER": 2.3,
"R": 2.4,
"H": 5.1,
"BB": 1.1,
"SO": 5.0,
"HR": 0.6,
"BF": 23.8,
"Pitches": 81.0
},
"rates": {
"ERA": 3.5085,
"WHIP": 1.0508,
"ER_per_IP": 0.38983,
"H_per_IP": 0.86441,
"BB_per_IP": 0.18644,
"SO_per_IP": 0.84746,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 17,
"totals": {
"IP": 99.2,
"ER": 37.0,
"R": 38.0,
"H": 84.0,
"BB": 18.0,
"SO": 81.0,
"HR": 9.0,
"BF": 395.0,
"Pitches": 1384.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1765,
"R": 2.2353,
"H": 4.9412,
"BB": 1.0588,
"SO": 4.7647,
"HR": 0.5294,
"BF": 23.2353,
"Pitches": 81.4118
},
"rates": {
"ERA": 3.3411,
"WHIP": 1.0234,
"ER_per_IP": 0.37124,
"H_per_IP": 0.84281,
"BB_per_IP": 0.1806,
"SO_per_IP": 0.81271,
"HR_per_IP": 0.0903
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.603,
"predicted_H": 5.179,
"predicted_BB": 1.301,
"predicted_SO": 5.511,
"predicted_HR": 0.719,
"predicted_ERA": 4.0335,
"predicted_WHIP": 1.1157
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.603,
"final": 3.2261,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.179,
"final": 6.4373,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.301,
"final": 1.1667,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.511,
"final": 5.7291,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.719,
"final": 0.8443,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0335,
"final": 4.0335,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1157,
"final": 1.1157,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.0,
"ER": 23,
"H": 51,
"BB": 11,
"SO": 50,
"HR": 6,
"ERA": 3.5084745762711864,
"WHIP": 1.0508474576271187,
"K9": 7.627118644067797,
"HR9": 0.9152542372881356,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.8947051310114271,
"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": 6.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": 5.2,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687562",
"player_name": "Jake Bennett",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.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": 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": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 146,
"wins": 80,
"losses": 66,
"win_pct": 0.5479,
"runs_scored": 648.0,
"runs_allowed": 564.0,
"run_differential": 84.0,
"run_differential_per_game": 0.5753,
"avg_runs_scored": 4.4384,
"avg_runs_allowed": 3.863,
"offense_index": 0.9917,
"defense_index": 1.1585,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": 0.1464
},
"opponent": {
"team": "LAA",
"games": 145,
"wins": 55,
"losses": 90,
"win_pct": 0.3793,
"runs_scored": 585.0,
"runs_allowed": 660.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5172,
"avg_runs_scored": 4.0345,
"avg_runs_allowed": 4.5517,
"offense_index": 0.9015,
"defense_index": 0.9832,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 3.2,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.2362
},
"edges": {
"quality_edge": 0.3826,
"offense_edge": -0.0083,
"opponent_offense_edge": -0.0985,
"defense_strength": 0.1585,
"opponent_defense_weakness": 0.0168,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.024,
"run_prevention": 0.9493,
"strikeout": 1.0194
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687562",
"profile": {
"available": true,
"pitcher_id": "687562",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 318.0,
"k_percent": 20.5,
"bb_percent": 4.6,
"woba": 0.264,
"xwoba": 0.279,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 36.9,
"avg_best_speed": 76.3764,
"avg_hyper_speed": 93.9574,
"whiff_percent": 24.3,
"swing_percent": 53.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6588,
"command_and_miss": 0.0986,
"regression_edge": -0.4286,
"xwoba_edge": 0.9143,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.1429,
"whiff_edge": -0.1,
"bb_edge": 1.15,
"pitch_design_score": -0.0712
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687562",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.60453343047513,
"release_spin_rate": 2085.5376155344834,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.60453343047513,
"release_spin_rate": 2085.5376155344834,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.6045,
"release_spin_rate": 2085.5376,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0712,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5085,
"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.346,
"sample_weight": 1.0,
"run_prevention_factor": 0.9706,
"strikeout_factor": 0.9874,
"walk_factor": 0.908,
"homer_factor": 0.974,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687562",
"espn_id": 4654024,
"player_name": "Jake Bennett",
"team": "BOS",
"role": "pitcher",
"espn_rank": 83,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 83,
"gp_value": 17.0,
"gp_rank": 429,
"gs_value": 17.0,
"gs_rank": 121,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 3.3411,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 6.0,
"l_rank": 111,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 99.2,
"ip_rank": 125,
"h_value": 84.0,
"h_rank": 138,
"er_value": 37.0,
"er_rank": 159,
"hr_value": 9.0,
"hr_rank": 175,
"bb_value": 18.0,
"bb_rank": 325,
"k_value": 81.0,
"k_rank": 150,
"k_per_9_value": 7.3143816,
"k_per_9_rank": 32,
"whip_value": 1.0234,
"whip_rank": null,
"war_value": 1.83,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9706,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9706,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.908,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.974,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9874,
"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": 1,
"box_score_synced": true,
"BF": 25,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260909_LAA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_MIN@DET | away | Zebby Matthews | Zebby Matthews | True | 6.0 | 2.1 | -11 | 4 | 5 | 1 | 5/2 | 1/4 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.6923076923076925,
"WHIP": 1.2478632478632479,
"IP": 117.0,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 5.85,
"recent_avg_IP": 6.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3309,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9703,
"walk_factor": 0.952,
"homer_factor": 1.1068,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 6.8,
"woba": 0.329,
"xwoba": 0.328,
"barrel_percent": 11.1,
"hard_hit_percent": 41.6,
"whiff_percent": 21.9
},
"espn_rank": {
"rank": 171,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "805673",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 11.0,
"R": 11.0,
"H": 26.0,
"BB": 5.0,
"SO": 24.0,
"HR": 5.0,
"BF": 122.0,
"Pitches": 476.0
},
"per_game": {
"IP": 6.1,
"ER": 2.2,
"R": 2.2,
"H": 5.2,
"BB": 1.0,
"SO": 4.8,
"HR": 1.0,
"BF": 24.4,
"Pitches": 95.2
},
"rates": {
"ERA": 3.1935,
"WHIP": 1.0,
"ER_per_IP": 0.35484,
"H_per_IP": 0.83871,
"BB_per_IP": 0.16129,
"SO_per_IP": 0.77419,
"HR_per_IP": 0.16129
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 31.0,
"R": 36.0,
"H": 58.0,
"BB": 17.0,
"SO": 46.0,
"HR": 9.0,
"BF": 238.0,
"Pitches": 941.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1,
"R": 3.6,
"H": 5.8,
"BB": 1.7,
"SO": 4.6,
"HR": 0.9,
"BF": 23.8,
"Pitches": 94.1
},
"rates": {
"ERA": 4.9821,
"WHIP": 1.3393,
"ER_per_IP": 0.55357,
"H_per_IP": 1.03571,
"BB_per_IP": 0.30357,
"SO_per_IP": 0.82143,
"HR_per_IP": 0.16071
}
},
"season": {
"games": 20,
"totals": {
"IP": 117.0,
"ER": 61.0,
"R": 66.0,
"H": 113.0,
"BB": 33.0,
"SO": 97.0,
"HR": 22.0,
"BF": 487.0,
"Pitches": 1862.0
},
"per_game": {
"IP": 6.0,
"ER": 3.05,
"R": 3.3,
"H": 5.65,
"BB": 1.65,
"SO": 4.85,
"HR": 1.1,
"BF": 24.35,
"Pitches": 93.1
},
"rates": {
"ERA": 4.6923,
"WHIP": 1.2479,
"ER_per_IP": 0.52137,
"H_per_IP": 0.96581,
"BB_per_IP": 0.28205,
"SO_per_IP": 0.82906,
"HR_per_IP": 0.18803
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.809,
"predicted_H": 5.67,
"predicted_BB": 1.581,
"predicted_SO": 4.998,
"predicted_HR": 0.978,
"predicted_ERA": 4.1946,
"predicted_WHIP": 1.2032
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.809,
"final": 3.3265,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.67,
"final": 5.3789,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.581,
"final": 1.3286,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.998,
"final": 4.9989,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.978,
"final": 0.5531,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1946,
"final": 4.1946,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2032,
"final": 1.2032,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 31,
"H": 58,
"BB": 17,
"SO": 46,
"HR": 9,
"ERA": 4.982142857142857,
"WHIP": 1.3392857142857142,
"K9": 7.392857142857143,
"HR9": 1.4464285714285714,
"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-04T00:00:00"
},
"recent_form_boost": 1.067703769025955,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "805673",
"player_name": "Zebby Matthews",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 145,
"wins": 69,
"losses": 76,
"win_pct": 0.4759,
"runs_scored": 673.0,
"runs_allowed": 721.0,
"run_differential": -48.0,
"run_differential_per_game": -0.331,
"avg_runs_scored": 4.6414,
"avg_runs_allowed": 4.9724,
"offense_index": 1.0326,
"defense_index": 0.904,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.3,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.061
},
"opponent": {
"team": "DET",
"games": 145,
"wins": 66,
"losses": 79,
"win_pct": 0.4552,
"runs_scored": 634.0,
"runs_allowed": 584.0,
"run_differential": 50.0,
"run_differential_per_game": 0.3448,
"avg_runs_scored": 4.3724,
"avg_runs_allowed": 4.0276,
"offense_index": 0.9727,
"defense_index": 1.116,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.9,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0659
},
"edges": {
"quality_edge": 0.0049,
"offense_edge": 0.0326,
"opponent_offense_edge": -0.0273,
"defense_strength": -0.096,
"opponent_defense_weakness": -0.116,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 1.005,
"strikeout": 1.0023
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "805673",
"profile": {
"available": true,
"pitcher_id": "805673",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 409.0,
"k_percent": 19.9,
"bb_percent": 6.8,
"woba": 0.329,
"xwoba": 0.328,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 41.6,
"avg_best_speed": 80.64,
"avg_hyper_speed": 94.7358,
"whiff_percent": 21.9,
"swing_percent": 47.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5172,
"command_and_miss": -0.17,
"regression_edge": 0.0286,
"xwoba_edge": -0.4857,
"barrel_edge": -0.8889,
"hard_hit_edge": -0.5286,
"whiff_edge": -0.4429,
"bb_edge": 0.6,
"pitch_design_score": 0.0004
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "805673",
"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.8834097777443,
"release_spin_rate": 2245.73417209907,
"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.8834097777443,
"release_spin_rate": 2245.73417209907,
"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.8834,
"release_spin_rate": 2245.7342,
"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.0004,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0031,
"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.3309,
"sample_weight": 1.0,
"run_prevention_factor": 1.0281,
"strikeout_factor": 0.9703,
"walk_factor": 0.952,
"homer_factor": 1.1068,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "805673",
"espn_id": 4791597,
"player_name": "Zebby Matthews",
"team": "MIN",
"role": "pitcher",
"espn_rank": 171,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 171,
"gp_value": 20.0,
"gp_rank": 392,
"gs_value": 20.0,
"gs_rank": 99,
"qs_value": 10.0,
"qs_rank": 58,
"era_value": 4.6923,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 9.0,
"l_rank": 29,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 117.0,
"ip_rank": 96,
"h_value": 113.0,
"h_rank": 92,
"er_value": 61.0,
"er_rank": 62,
"hr_value": 22.0,
"hr_rank": 23,
"bb_value": 33.0,
"bb_rank": 135,
"k_value": 97.0,
"k_rank": 106,
"k_per_9_value": 7.4615383,
"k_per_9_rank": 29,
"whip_value": 1.2478,
"whip_rank": null,
"war_value": 1.12,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0281,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0281,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1068,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9703,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260909_MIN@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_MIN@DET | home | Keider Montero | Keider Montero | True | 5.2 | 4.0 | -5 | 3 | 2 | -1 | 3/2 | 3/2 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5244755244755246,
"WHIP": 1.027972027972028,
"IP": 143.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.594,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1157,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 0.9309,
"walk_factor": 0.926,
"homer_factor": 0.9708,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 5.5,
"woba": 0.272,
"xwoba": 0.287,
"barrel_percent": 7.0,
"hard_hit_percent": 36.7,
"whiff_percent": 18.3
},
"espn_rank": {
"rank": 40,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 143.0,
"season_ERA": 3.524,
"season_WHIP": 1.028,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "672456",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 15.0,
"R": 15.0,
"H": 24.0,
"BB": 7.0,
"SO": 15.0,
"HR": 4.0,
"BF": 112.0,
"Pitches": 403.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.8,
"BB": 1.4,
"SO": 3.0,
"HR": 0.8,
"BF": 22.4,
"Pitches": 80.6
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.1625,
"ER_per_IP": 0.5625,
"H_per_IP": 0.9,
"BB_per_IP": 0.2625,
"SO_per_IP": 0.5625,
"HR_per_IP": 0.15
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 23.0,
"R": 25.0,
"H": 43.0,
"BB": 11.0,
"SO": 36.0,
"HR": 6.0,
"BF": 204.0,
"Pitches": 751.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.5,
"H": 4.3,
"BB": 1.1,
"SO": 3.6,
"HR": 0.6,
"BF": 20.4,
"Pitches": 75.1
},
"rates": {
"ERA": 4.2534,
"WHIP": 1.1096,
"ER_per_IP": 0.4726,
"H_per_IP": 0.88356,
"BB_per_IP": 0.22603,
"SO_per_IP": 0.73973,
"HR_per_IP": 0.12329
}
},
"season": {
"games": 29,
"totals": {
"IP": 143.0,
"ER": 56.0,
"R": 60.0,
"H": 115.0,
"BB": 32.0,
"SO": 96.0,
"HR": 15.0,
"BF": 577.0,
"Pitches": 2084.0
},
"per_game": {
"IP": 5.0,
"ER": 1.931,
"R": 2.069,
"H": 3.9655,
"BB": 1.1034,
"SO": 3.3103,
"HR": 0.5172,
"BF": 19.8966,
"Pitches": 71.8621
},
"rates": {
"ERA": 3.5245,
"WHIP": 1.028,
"ER_per_IP": 0.39161,
"H_per_IP": 0.8042,
"BB_per_IP": 0.22378,
"SO_per_IP": 0.67133,
"HR_per_IP": 0.1049
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.599,
"predicted_H": 4.647,
"predicted_BB": 1.364,
"predicted_SO": 3.603,
"predicted_HR": 0.699,
"predicted_ERA": 4.4753,
"predicted_WHIP": 1.1503
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.599,
"final": 3.1764,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.647,
"final": 3.9682,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.364,
"final": 2.0383,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.603,
"final": 5.0031,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.699,
"final": 0.8231,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4753,
"final": 4.4753,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1503,
"final": 1.1503,
"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.2,
"ER": 23,
"H": 43,
"BB": 11,
"SO": 36,
"HR": 6,
"ERA": 4.2534246575342465,
"WHIP": 1.1095890410958904,
"K9": 6.657534246575342,
"HR9": 1.1095890410958904,
"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-04T00:00:00"
},
"recent_form_boost": 0.9799805547402406,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"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": 3,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "672456",
"player_name": "Keider Montero",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 145,
"wins": 66,
"losses": 79,
"win_pct": 0.4552,
"runs_scored": 634.0,
"runs_allowed": 584.0,
"run_differential": 50.0,
"run_differential_per_game": 0.3448,
"avg_runs_scored": 4.3724,
"avg_runs_allowed": 4.0276,
"offense_index": 0.9727,
"defense_index": 1.116,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.9,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0659
},
"opponent": {
"team": "MIN",
"games": 145,
"wins": 69,
"losses": 76,
"win_pct": 0.4759,
"runs_scored": 673.0,
"runs_allowed": 721.0,
"run_differential": -48.0,
"run_differential_per_game": -0.331,
"avg_runs_scored": 4.6414,
"avg_runs_allowed": 4.9724,
"offense_index": 1.0326,
"defense_index": 0.904,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 4.3,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.061
},
"edges": {
"quality_edge": -0.0049,
"offense_edge": -0.0273,
"opponent_offense_edge": 0.0326,
"defense_strength": 0.116,
"opponent_defense_weakness": 0.096,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9939,
"strikeout": 0.9972
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "672456",
"profile": {
"available": true,
"pitcher_id": "672456",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 528.0,
"k_percent": 16.6,
"bb_percent": 5.5,
"woba": 0.272,
"xwoba": 0.287,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 36.7,
"avg_best_speed": 78.301,
"avg_hyper_speed": 93.5812,
"whiff_percent": 18.3,
"swing_percent": 48.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5127,
"command_and_miss": -0.4971,
"regression_edge": -0.4286,
"xwoba_edge": 0.6857,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.1714,
"whiff_edge": -0.9571,
"bb_edge": 0.925,
"pitch_design_score": 0.0082
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "672456",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.022307065353,
"release_spin_rate": 2355.6795124392715,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 90.022307065353,
"release_spin_rate": 2355.6795124392715,
"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.0223,
"release_spin_rate": 2355.6795,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0082,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0586,
"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.1157,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 0.9309,
"walk_factor": 0.926,
"homer_factor": 0.9708,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "672456",
"espn_id": 5182933,
"player_name": "Keider Montero",
"team": "DET",
"role": "pitcher",
"espn_rank": 40,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 40,
"gp_value": 29.0,
"gp_rank": 230,
"gs_value": 23.0,
"gs_rank": 79,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 3.5244,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 8.0,
"l_rank": 58,
"sv_value": 1.0,
"sv_rank": 138,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 143.0,
"ip_rank": 52,
"h_value": 115.0,
"h_rank": 89,
"er_value": 56.0,
"er_rank": 79,
"hr_value": 15.0,
"hr_rank": 89,
"bb_value": 32.0,
"bb_rank": 144,
"k_value": 96.0,
"k_rank": 109,
"k_per_9_value": 6.041958,
"k_per_9_rank": 56,
"whip_value": 1.0279,
"whip_rank": null,
"war_value": 2.81,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9902,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9902,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9708,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9309,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260909_MIN@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_NYM@MIA | away | Robert Stock | Robert Stock | True | 4.1 | 4.0 | -1 | 3 | 3 | 0 | 5/5 | 2/2 | 4/4 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 5.810126582278481,
"WHIP": 1.7468354430379747,
"IP": 26.1,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.2,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0642,
"sample_weight": 0.45,
"run_prevention_factor": 1.0055,
"strikeout_factor": 0.9925,
"walk_factor": 1.009,
"homer_factor": 0.9887,
"regression_flag": "positive_pitcher_regression",
"k_percent": 19.7,
"bb_percent": 10.2,
"woba": 0.359,
"xwoba": 0.327,
"barrel_percent": 7.0,
"hard_hit_percent": 31.4,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 648,
"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.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "476594",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 8.0,
"R": 9.0,
"H": 21.0,
"BB": 8.0,
"SO": 17.0,
"HR": 1.0,
"BF": 86.0,
"Pitches": 330.0
},
"per_game": {
"IP": 3.2,
"ER": 1.6,
"R": 1.8,
"H": 4.2,
"BB": 1.6,
"SO": 3.4,
"HR": 0.2,
"BF": 17.2,
"Pitches": 66.0
},
"rates": {
"ERA": 3.9273,
"WHIP": 1.5818,
"ER_per_IP": 0.43636,
"H_per_IP": 1.14545,
"BB_per_IP": 0.43636,
"SO_per_IP": 0.92727,
"HR_per_IP": 0.05455
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 26.1,
"ER": 17.0,
"R": 18.0,
"H": 33.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 127.0,
"Pitches": 480.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4286,
"R": 2.5714,
"H": 4.7143,
"BB": 1.8571,
"SO": 3.5714,
"HR": 0.2857,
"BF": 18.1429,
"Pitches": 68.5714
},
"rates": {
"ERA": 5.8101,
"WHIP": 1.7468,
"ER_per_IP": 0.64557,
"H_per_IP": 1.25316,
"BB_per_IP": 0.49367,
"SO_per_IP": 0.94937,
"HR_per_IP": 0.07595
}
},
"season": {
"games": 7,
"totals": {
"IP": 26.1,
"ER": 17.0,
"R": 18.0,
"H": 33.0,
"BB": 13.0,
"SO": 25.0,
"HR": 2.0,
"BF": 127.0,
"Pitches": 480.0
},
"per_game": {
"IP": 3.2,
"ER": 2.4286,
"R": 2.5714,
"H": 4.7143,
"BB": 1.8571,
"SO": 3.5714,
"HR": 0.2857,
"BF": 18.1429,
"Pitches": 68.5714
},
"rates": {
"ERA": 5.8101,
"WHIP": 1.7468,
"ER_per_IP": 0.64557,
"H_per_IP": 1.25316,
"BB_per_IP": 0.49367,
"SO_per_IP": 0.94937,
"HR_per_IP": 0.07595
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.008,
"predicted_H": 4.442,
"predicted_BB": 1.703,
"predicted_SO": 3.82,
"predicted_HR": 0.39,
"predicted_ERA": 4.4249,
"predicted_WHIP": 1.505
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.008,
"final": 2.5298,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.442,
"final": 4.7355,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.703,
"final": 1.8592,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.82,
"final": 3.9147,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.39,
"final": 0.7109,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4249,
"final": 4.4249,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.505,
"final": 1.505,
"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": 26.1,
"ER": 17,
"H": 33,
"BB": 13,
"SO": 25,
"HR": 2,
"ERA": 5.810126582278481,
"WHIP": 1.7468354430379747,
"K9": 8.544303797468356,
"HR9": 0.6835443037974683,
"games_pitched": 7,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.1474035653487338,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "476594",
"player_name": "Robert Stock",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 612.0,
"runs_allowed": 653.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2828,
"avg_runs_scored": 4.2207,
"avg_runs_allowed": 4.5034,
"offense_index": 0.9431,
"defense_index": 0.9938,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.6,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.003
},
"opponent": {
"team": "MIA",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 640.0,
"runs_allowed": 632.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0548,
"avg_runs_scored": 4.3836,
"avg_runs_allowed": 4.3288,
"offense_index": 0.9795,
"defense_index": 1.0339,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.034
},
"edges": {
"quality_edge": 0.037,
"offense_edge": -0.0569,
"opponent_offense_edge": -0.0205,
"defense_strength": -0.0062,
"opponent_defense_weakness": -0.0339,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0021,
"run_prevention": 0.9955,
"strikeout": 1.0028
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "476594",
"profile": {
"available": true,
"pitcher_id": "476594",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 81.0,
"k_percent": 19.7,
"bb_percent": 10.2,
"woba": 0.359,
"xwoba": 0.327,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 31.4,
"avg_best_speed": 77.7202,
"avg_hyper_speed": 93.2993,
"whiff_percent": 24.4,
"swing_percent": 49.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3213,
"command_and_miss": -0.2279,
"regression_edge": 0.9143,
"xwoba_edge": -0.4571,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.9286,
"whiff_edge": -0.0857,
"bb_edge": -0.25,
"pitch_design_score": 0.0632
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "476594",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.00453080177854,
"release_spin_rate": 2252.021749497992,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.00453080177854,
"release_spin_rate": 2252.021749497992,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.0045,
"release_spin_rate": 2252.0217,
"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.0632,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4515,
"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.0642,
"sample_weight": 0.45,
"run_prevention_factor": 1.0055,
"strikeout_factor": 0.9925,
"walk_factor": 1.009,
"homer_factor": 0.9887,
"woba_minus_xwoba": 0.032,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "476594",
"espn_id": 30577,
"player_name": "Robert Stock",
"team": "NYM",
"role": "pitcher",
"espn_rank": 648,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 648,
"gp_value": 7.0,
"gp_rank": 585,
"gs_value": 6.0,
"gs_rank": 202,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 5.8101,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 26.1,
"ip_rank": 464,
"h_value": 33.0,
"h_rank": 389,
"er_value": 17.0,
"er_rank": 371,
"hr_value": 2.0,
"hr_rank": 521,
"bb_value": 13.0,
"bb_rank": 416,
"k_value": 25.0,
"k_rank": 447,
"k_per_9_value": 8.544304,
"k_per_9_rank": 26,
"whip_value": 1.7468,
"whip_rank": null,
"war_value": -0.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0025,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0025,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9949,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9966,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260909_NYM@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_NYM@MIA | home | Janson Junk | Janson Junk | True | 5.0 | 3.0 | -6 | 3 | 8 | 5 | 4/8 | 2/1 | 3/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.0,
"WHIP": 1.2777777777777777,
"IP": 108.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.095,
"recent_avg_IP": 5.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2461,
"sample_weight": 1.0,
"run_prevention_factor": 1.0209,
"strikeout_factor": 0.9109,
"walk_factor": 0.944,
"homer_factor": 1.013,
"regression_flag": "neutral",
"k_percent": 16.3,
"bb_percent": 6.4,
"woba": 0.316,
"xwoba": 0.317,
"barrel_percent": 6.9,
"hard_hit_percent": 39.9,
"whiff_percent": 15.1
},
"espn_rank": {
"rank": 176,
"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": "676083",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 5.0,
"R": 5.0,
"H": 17.0,
"BB": 5.0,
"SO": 10.0,
"HR": 0.0,
"BF": 80.0,
"Pitches": 305.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.0,
"H": 3.4,
"BB": 1.0,
"SO": 2.0,
"HR": 0.0,
"BF": 16.0,
"Pitches": 61.0
},
"rates": {
"ERA": 2.2131,
"WHIP": 1.082,
"ER_per_IP": 0.2459,
"H_per_IP": 0.83607,
"BB_per_IP": 0.2459,
"SO_per_IP": 0.4918,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 15.0,
"R": 17.0,
"H": 41.0,
"BB": 12.0,
"SO": 26.0,
"HR": 3.0,
"BF": 177.0,
"Pitches": 667.0
},
"per_game": {
"IP": 4.1,
"ER": 1.5,
"R": 1.7,
"H": 4.1,
"BB": 1.2,
"SO": 2.6,
"HR": 0.3,
"BF": 17.7,
"Pitches": 66.7
},
"rates": {
"ERA": 3.1395,
"WHIP": 1.2326,
"ER_per_IP": 0.34884,
"H_per_IP": 0.95349,
"BB_per_IP": 0.27907,
"SO_per_IP": 0.60465,
"HR_per_IP": 0.06977
}
},
"season": {
"games": 22,
"totals": {
"IP": 108.0,
"ER": 48.0,
"R": 53.0,
"H": 109.0,
"BB": 29.0,
"SO": 74.0,
"HR": 12.0,
"BF": 453.0,
"Pitches": 1701.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1818,
"R": 2.4091,
"H": 4.9545,
"BB": 1.3182,
"SO": 3.3636,
"HR": 0.5455,
"BF": 20.5909,
"Pitches": 77.3182
},
"rates": {
"ERA": 4.0,
"WHIP": 1.2778,
"ER_per_IP": 0.44444,
"H_per_IP": 1.00926,
"BB_per_IP": 0.26852,
"SO_per_IP": 0.68519,
"HR_per_IP": 0.11111
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.576,
"predicted_H": 4.1,
"predicted_BB": 1.254,
"predicted_SO": 2.837,
"predicted_HR": 0.289,
"predicted_ERA": 3.1913,
"predicted_WHIP": 1.2051
}
},
"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": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.576,
"final": 2.1858,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.1,
"final": 4.0572,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.254,
"final": 1.5735,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 2.837,
"final": 2.9068,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.289,
"final": 0.5935,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1913,
"final": 3.1913,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2051,
"final": 1.2051,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 15,
"H": 41,
"BB": 12,
"SO": 26,
"HR": 3,
"ERA": 3.13953488372093,
"WHIP": 1.2325581395348837,
"K9": 5.441860465116279,
"HR9": 0.627906976744186,
"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": 0.8577421826472174,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 640.0,
"runs_allowed": 632.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0548,
"avg_runs_scored": 4.3836,
"avg_runs_allowed": 4.3288,
"offense_index": 0.9795,
"defense_index": 1.0339,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.034
},
"opponent": {
"team": "NYM",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 612.0,
"runs_allowed": 653.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2828,
"avg_runs_scored": 4.2207,
"avg_runs_allowed": 4.5034,
"offense_index": 0.9431,
"defense_index": 0.9938,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.6,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.003
},
"edges": {
"quality_edge": -0.037,
"offense_edge": -0.0205,
"opponent_offense_edge": -0.0569,
"defense_strength": 0.0339,
"opponent_defense_weakness": 0.0062,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0018,
"run_prevention": 0.9894,
"strikeout": 1.0034
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 372.0,
"k_percent": 16.3,
"bb_percent": 6.4,
"woba": 0.316,
"xwoba": 0.317,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 39.9,
"avg_best_speed": 79.6896,
"avg_hyper_speed": 94.544,
"whiff_percent": 15.1,
"swing_percent": 48.3
},
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0869,
"command_and_miss": -0.7214,
"regression_edge": -0.0286,
"xwoba_edge": -0.1714,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.2857,
"whiff_edge": -1.4143,
"bb_edge": 0.7,
"pitch_design_score": -0.0871
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 88.32055855990507,
"release_spin_rate": 2207.610368540037,
"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.3206,
"release_spin_rate": 2207.6104,
"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.0871,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6221,
"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.2461,
"sample_weight": 1.0,
"run_prevention_factor": 1.0209,
"strikeout_factor": 0.9109,
"walk_factor": 0.944,
"homer_factor": 1.013,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676083",
"espn_id": 4881980,
"player_name": "Janson Junk",
"team": "MIA",
"role": "pitcher",
"espn_rank": 176,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 176,
"gp_value": 22.0,
"gp_rank": 362,
"gs_value": 21.0,
"gs_rank": 92,
"qs_value": 3.0,
"qs_rank": 139,
"era_value": 4.0,
"era_rank": null,
"w_value": 6.0,
"w_rank": 103,
"l_value": 9.0,
"l_rank": 29,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 108.0,
"ip_rank": 113,
"h_value": 109.0,
"h_rank": 103,
"er_value": 48.0,
"er_rank": 116,
"hr_value": 12.0,
"hr_rank": 132,
"bb_value": 29.0,
"bb_rank": 172,
"k_value": 74.0,
"k_rank": 167,
"k_per_9_value": 6.1666665,
"k_per_9_rank": 39,
"whip_value": 1.2777,
"whip_rank": null,
"war_value": 1.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0209,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0209,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.013,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9109,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "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."
}
],
"provenance": {
"prediction": "output/games/20260909_NYM@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_PIT@CHW | away | Lake Bachar | Lake Bachar | True | 5.0 | 1.2 | -10 | 2 | 0 | -2 | 5/2 | 2/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0128755364806867,
"WHIP": 1.004291845493562,
"IP": 77.2,
"games_started": null,
"games_pitched": 46,
"role_avg_IP": 2.333,
"recent_avg_IP": 2.2,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2847,
"sample_weight": 1.0,
"run_prevention_factor": 0.9758,
"strikeout_factor": 1.044,
"walk_factor": 1.018,
"homer_factor": 0.9875,
"regression_flag": "neutral",
"k_percent": 25.2,
"bb_percent": 10.1,
"woba": 0.285,
"xwoba": 0.292,
"barrel_percent": 8.5,
"hard_hit_percent": 34.2,
"whiff_percent": 29.5
},
"espn_rank": {
"rank": 179,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 77.2,
"season_ERA": 3.013,
"season_WHIP": 1.004,
"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": 15.631,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7576,
"prior_weight": 0.2424
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669199",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 46,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.0,
"ER": 2.0,
"R": 2.0,
"H": 2.0,
"BB": 8.0,
"SO": 8.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 149.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 0.4,
"BB": 1.6,
"SO": 1.6,
"HR": 0.2,
"BF": 7.2,
"Pitches": 29.8
},
"rates": {
"ERA": 2.0,
"WHIP": 1.1111,
"ER_per_IP": 0.22222,
"H_per_IP": 0.22222,
"BB_per_IP": 0.88889,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 22.0,
"ER": 6.0,
"R": 6.0,
"H": 10.0,
"BB": 11.0,
"SO": 21.0,
"HR": 4.0,
"BF": 85.0,
"Pitches": 352.0
},
"per_game": {
"IP": 2.1,
"ER": 0.6,
"R": 0.6,
"H": 1.0,
"BB": 1.1,
"SO": 2.1,
"HR": 0.4,
"BF": 8.5,
"Pitches": 35.2
},
"rates": {
"ERA": 2.4545,
"WHIP": 0.9545,
"ER_per_IP": 0.27273,
"H_per_IP": 0.45455,
"BB_per_IP": 0.5,
"SO_per_IP": 0.95455,
"HR_per_IP": 0.18182
}
},
"season": {
"games": 46,
"totals": {
"IP": 77.2,
"ER": 26.0,
"R": 28.0,
"H": 48.0,
"BB": 30.0,
"SO": 80.0,
"HR": 12.0,
"BF": 311.0,
"Pitches": 1252.0
},
"per_game": {
"IP": 1.2,
"ER": 0.5652,
"R": 0.6087,
"H": 1.0435,
"BB": 0.6522,
"SO": 1.7391,
"HR": 0.2609,
"BF": 6.7609,
"Pitches": 27.2174
},
"rates": {
"ERA": 3.0129,
"WHIP": 1.0043,
"ER_per_IP": 0.33476,
"H_per_IP": 0.61803,
"BB_per_IP": 0.38627,
"SO_per_IP": 1.03004,
"HR_per_IP": 0.15451
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.9,
"predicted_H": 1.478,
"predicted_BB": 1.643,
"predicted_SO": 2.644,
"predicted_HR": 0.408,
"predicted_ERA": 2.8791,
"predicted_WHIP": 1.1095
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4524,
"form_weight": 0.5476,
"form_reliability": 0.7576,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.631,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7576,
"prior_weight": 0.2424
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.9,
"final": 1.3977,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 1.478,
"final": 3.0714,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.643,
"final": 1.8045,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.644,
"final": 4.1623,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.408,
"final": 0.6758,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8791,
"final": 2.8791,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1095,
"final": 1.1095,
"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": 22.0,
"ER": 6,
"H": 10,
"BB": 11,
"SO": 21,
"HR": 4,
"ERA": 2.4545454545454546,
"WHIP": 0.9545454545454546,
"K9": 8.590909090909092,
"HR9": 1.6363636363636365,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 0.8370886559371324,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.631,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7576,
"prior_weight": 0.2424
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669199",
"player_name": "Lake Bachar",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 703.0,
"runs_allowed": 671.0,
"run_differential": 32.0,
"run_differential_per_game": 0.2207,
"avg_runs_scored": 4.8483,
"avg_runs_allowed": 4.6276,
"offense_index": 1.0831,
"defense_index": 0.9673,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.8,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0942
},
"opponent": {
"team": "CHW",
"games": 144,
"wins": 75,
"losses": 69,
"win_pct": 0.5208,
"runs_scored": 683.0,
"runs_allowed": 640.0,
"run_differential": 43.0,
"run_differential_per_game": 0.2986,
"avg_runs_scored": 4.7431,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0596,
"defense_index": 1.0072,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.9,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0194
},
"edges": {
"quality_edge": 0.0748,
"offense_edge": 0.0831,
"opponent_offense_edge": 0.0596,
"defense_strength": -0.0327,
"opponent_defense_weakness": -0.0072,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9996,
"run_prevention": 1.0091,
"strikeout": 0.9975
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669199",
"profile": {
"available": true,
"pitcher_id": "669199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 281.0,
"k_percent": 25.2,
"bb_percent": 10.1,
"woba": 0.285,
"xwoba": 0.292,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 34.2,
"avg_best_speed": 78.791,
"avg_hyper_speed": 93.63,
"whiff_percent": 29.5,
"swing_percent": 45.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3659,
"command_and_miss": 0.3857,
"regression_edge": -0.2,
"xwoba_edge": 0.5429,
"barrel_edge": -0.3111,
"hard_hit_edge": 0.5286,
"whiff_edge": 0.6429,
"bb_edge": -0.225,
"pitch_design_score": -0.0059
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 52,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.7704,
"release_spin_rate": 2691.0164,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0059,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0421,
"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.2847,
"sample_weight": 1.0,
"run_prevention_factor": 0.9758,
"strikeout_factor": 1.044,
"walk_factor": 1.018,
"homer_factor": 0.9875,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669199",
"espn_id": 42592,
"player_name": "Lake Bachar",
"team": "PIT",
"role": "pitcher",
"espn_rank": 179,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 179,
"gp_value": 47.0,
"gp_rank": 120,
"gs_value": 8.0,
"gs_rank": 188,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 3.5922,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 2.0,
"sv_rank": 93,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 77.2,
"ip_rank": 166,
"h_value": 52.0,
"h_rank": 232,
"er_value": 31.0,
"er_rank": 180,
"hr_value": 13.0,
"hr_rank": 123,
"bb_value": 32.0,
"bb_rank": 144,
"k_value": 80.0,
"k_rank": 154,
"k_per_9_value": 9.270386,
"k_per_9_rank": 25,
"whip_value": 1.0815,
"whip_rank": null,
"war_value": 1.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9758,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9758,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9875,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.044,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_PIT@CHW | home | Davis Martin | Davis Martin | True | 5.0 | 5.0 | 0 | 4 | 1 | -3 | 3/4 | 3/2 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.13265306122449,
"WHIP": 1.316326530612245,
"IP": 130.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.227,
"recent_avg_IP": 3.933,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2361,
"sample_weight": 1.0,
"run_prevention_factor": 1.0201,
"strikeout_factor": 0.9851,
"walk_factor": 0.96,
"homer_factor": 1.0405,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 7.2,
"woba": 0.321,
"xwoba": 0.33,
"barrel_percent": 6.5,
"hard_hit_percent": 44.0,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 63,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663436",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.2,
"ER": 17.0,
"R": 19.0,
"H": 24.0,
"BB": 7.0,
"SO": 14.0,
"HR": 6.0,
"BF": 90.0,
"Pitches": 335.0
},
"per_game": {
"IP": 4.0,
"ER": 3.4,
"R": 3.8,
"H": 4.8,
"BB": 1.4,
"SO": 2.8,
"HR": 1.2,
"BF": 18.0,
"Pitches": 67.0
},
"rates": {
"ERA": 7.7797,
"WHIP": 1.5763,
"ER_per_IP": 0.86441,
"H_per_IP": 1.22034,
"BB_per_IP": 0.35593,
"SO_per_IP": 0.71186,
"HR_per_IP": 0.30508
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 29.0,
"R": 31.0,
"H": 50.0,
"BB": 17.0,
"SO": 27.0,
"HR": 6.0,
"BF": 195.0,
"Pitches": 752.0
},
"per_game": {
"IP": 4.1,
"ER": 2.9,
"R": 3.1,
"H": 5.0,
"BB": 1.7,
"SO": 2.7,
"HR": 0.6,
"BF": 19.5,
"Pitches": 75.2
},
"rates": {
"ERA": 6.0698,
"WHIP": 1.5581,
"ER_per_IP": 0.67442,
"H_per_IP": 1.16279,
"BB_per_IP": 0.39535,
"SO_per_IP": 0.62791,
"HR_per_IP": 0.13953
}
},
"season": {
"games": 25,
"totals": {
"IP": 130.2,
"ER": 60.0,
"R": 62.0,
"H": 132.0,
"BB": 40.0,
"SO": 114.0,
"HR": 12.0,
"BF": 553.0,
"Pitches": 2115.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.48,
"H": 5.28,
"BB": 1.6,
"SO": 4.56,
"HR": 0.48,
"BF": 22.12,
"Pitches": 84.6
},
"rates": {
"ERA": 4.1327,
"WHIP": 1.3163,
"ER_per_IP": 0.45918,
"H_per_IP": 1.0102,
"BB_per_IP": 0.30612,
"SO_per_IP": 0.87245,
"HR_per_IP": 0.09184
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.053,
"predicted_H": 5.056,
"predicted_BB": 1.622,
"predicted_SO": 3.374,
"predicted_HR": 0.874,
"predicted_ERA": 6.1258,
"predicted_WHIP": 1.4887
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.053,
"final": 3.4511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.056,
"final": 4.1916,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.622,
"final": 2.2014,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.374,
"final": 3.2168,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.874,
"final": 1.3474,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.1258,
"final": 6.1258,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4887,
"final": 1.4887,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 29,
"H": 50,
"BB": 17,
"SO": 27,
"HR": 6,
"ERA": 6.069767441860464,
"WHIP": 1.5581395348837206,
"K9": 5.651162790697674,
"HR9": 1.2558139534883719,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 1.195532880321636,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663436",
"player_name": "Davis Martin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 144,
"wins": 75,
"losses": 69,
"win_pct": 0.5208,
"runs_scored": 683.0,
"runs_allowed": 640.0,
"run_differential": 43.0,
"run_differential_per_game": 0.2986,
"avg_runs_scored": 4.7431,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0596,
"defense_index": 1.0072,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.9,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0194
},
"opponent": {
"team": "PIT",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 703.0,
"runs_allowed": 671.0,
"run_differential": 32.0,
"run_differential_per_game": 0.2207,
"avg_runs_scored": 4.8483,
"avg_runs_allowed": 4.6276,
"offense_index": 1.0831,
"defense_index": 0.9673,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.8,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0942
},
"edges": {
"quality_edge": -0.0748,
"offense_edge": 0.0596,
"opponent_offense_edge": 0.0831,
"defense_strength": 0.0072,
"opponent_defense_weakness": 0.0327,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9939,
"run_prevention": 1.0163,
"strikeout": 0.9911
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663436",
"profile": {
"available": true,
"pitcher_id": "663436",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 513.0,
"k_percent": 20.6,
"bb_percent": 7.2,
"woba": 0.321,
"xwoba": 0.33,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 44.0,
"avg_best_speed": 79.3791,
"avg_hyper_speed": 94.8054,
"whiff_percent": 23.8,
"swing_percent": 48.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3535,
"command_and_miss": -0.05,
"regression_edge": -0.2571,
"xwoba_edge": -0.5429,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.1714,
"bb_edge": 0.5,
"pitch_design_score": 0.0077
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663436",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 90.01319078482793,
"release_spin_rate": 2482.815619480008,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 90.01319078482793,
"release_spin_rate": 2482.815619480008,
"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.0132,
"release_spin_rate": 2482.8156,
"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.0077,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.055,
"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.2361,
"sample_weight": 1.0,
"run_prevention_factor": 1.0201,
"strikeout_factor": 0.9851,
"walk_factor": 0.96,
"homer_factor": 1.0405,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663436",
"espn_id": 42823,
"player_name": "Davis Martin",
"team": "CHW",
"role": "pitcher",
"espn_rank": 63,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 63,
"gp_value": 25.0,
"gp_rank": 317,
"gs_value": 25.0,
"gs_rank": 59,
"qs_value": 10.0,
"qs_rank": 58,
"era_value": 4.1326,
"era_rank": null,
"w_value": 9.0,
"w_rank": 40,
"l_value": 6.0,
"l_rank": 111,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 130.2,
"ip_rank": 80,
"h_value": 132.0,
"h_rank": 52,
"er_value": 60.0,
"er_rank": 65,
"hr_value": 12.0,
"hr_rank": 132,
"bb_value": 40.0,
"bb_rank": 84,
"k_value": 114.0,
"k_rank": 81,
"k_per_9_value": 7.852041,
"k_per_9_rank": 27,
"whip_value": 1.3163,
"whip_rank": null,
"war_value": 2.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0201,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0201,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.96,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0405,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9851,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_STL@SF | away | Andre Pallante | Andre Pallante | True | 5.2 | 5.0 | -2 | 2 | 1 | -1 | 2/5 | 3/0 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5106382978723403,
"WHIP": 1.2411347517730495,
"IP": 141.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.64,
"recent_avg_IP": 5.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0623,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.948,
"walk_factor": 0.97,
"homer_factor": 0.9347,
"regression_flag": "neutral",
"k_percent": 16.8,
"bb_percent": 7.7,
"woba": 0.298,
"xwoba": 0.305,
"barrel_percent": 5.1,
"hard_hit_percent": 33.6,
"whiff_percent": 21.1
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669467",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 8.0,
"R": 8.0,
"H": 26.0,
"BB": 13.0,
"SO": 15.0,
"HR": 0.0,
"BF": 115.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 5.2,
"BB": 2.6,
"SO": 3.0,
"HR": 0.0,
"BF": 23.0,
"Pitches": 90.0
},
"rates": {
"ERA": 2.5116,
"WHIP": 1.3605,
"ER_per_IP": 0.27907,
"H_per_IP": 0.90698,
"BB_per_IP": 0.45349,
"SO_per_IP": 0.52326,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 22.0,
"R": 22.0,
"H": 57.0,
"BB": 20.0,
"SO": 34.0,
"HR": 1.0,
"BF": 238.0,
"Pitches": 925.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.2,
"H": 5.7,
"BB": 2.0,
"SO": 3.4,
"HR": 0.1,
"BF": 23.8,
"Pitches": 92.5
},
"rates": {
"ERA": 3.3943,
"WHIP": 1.32,
"ER_per_IP": 0.37714,
"H_per_IP": 0.97714,
"BB_per_IP": 0.34286,
"SO_per_IP": 0.58286,
"HR_per_IP": 0.01714
}
},
"season": {
"games": 25,
"totals": {
"IP": 141.0,
"ER": 55.0,
"R": 57.0,
"H": 130.0,
"BB": 45.0,
"SO": 98.0,
"HR": 10.0,
"BF": 584.0,
"Pitches": 2275.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.28,
"H": 5.2,
"BB": 1.8,
"SO": 3.92,
"HR": 0.4,
"BF": 23.36,
"Pitches": 91.0
},
"rates": {
"ERA": 3.5106,
"WHIP": 1.2411,
"ER_per_IP": 0.39007,
"H_per_IP": 0.92199,
"BB_per_IP": 0.31915,
"SO_per_IP": 0.69504,
"HR_per_IP": 0.07092
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.092,
"predicted_H": 5.422,
"predicted_BB": 2.22,
"predicted_SO": 3.681,
"predicted_HR": 0.237,
"predicted_ERA": 3.2664,
"predicted_WHIP": 1.3258
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.092,
"final": 2.0533,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.422,
"final": 3.9833,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.22,
"final": 2.5479,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.681,
"final": 2.9743,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.237,
"final": 0.1374,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2664,
"final": 3.2664,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3258,
"final": 1.3258,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.1,
"ER": 22,
"H": 57,
"BB": 20,
"SO": 34,
"HR": 1,
"ERA": 3.3942857142857146,
"WHIP": 1.32,
"K9": 5.245714285714286,
"HR9": 0.1542857142857143,
"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-04T00:00:00"
},
"recent_form_boost": 0.8885876975973837,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669467",
"player_name": "Andre Pallante",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 662.0,
"runs_allowed": 673.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0753,
"avg_runs_scored": 4.5342,
"avg_runs_allowed": 4.6096,
"offense_index": 1.0105,
"defense_index": 0.9734,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.05
},
"opponent": {
"team": "SF",
"games": 146,
"wins": 61,
"losses": 85,
"win_pct": 0.4178,
"runs_scored": 610.0,
"runs_allowed": 683.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.1781,
"avg_runs_allowed": 4.6781,
"offense_index": 0.9311,
"defense_index": 0.9592,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.6,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1312
},
"edges": {
"quality_edge": 0.0812,
"offense_edge": 0.0105,
"opponent_offense_edge": -0.0689,
"defense_strength": -0.0266,
"opponent_defense_weakness": 0.0408,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9876,
"strikeout": 1.0079
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669467",
"profile": {
"available": true,
"pitcher_id": "669467",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 561.0,
"k_percent": 16.8,
"bb_percent": 7.7,
"woba": 0.298,
"xwoba": 0.305,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 33.6,
"avg_best_speed": 75.5013,
"avg_hyper_speed": 93.4611,
"whiff_percent": 21.1,
"swing_percent": 44.9
},
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3578,
"command_and_miss": -0.4543,
"regression_edge": -0.2,
"xwoba_edge": 0.1714,
"barrel_edge": 0.4444,
"hard_hit_edge": 0.6143,
"whiff_edge": -0.5571,
"bb_edge": 0.375,
"pitch_design_score": 0.0001
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.87700465293038,
"release_spin_rate": 2282.6525343804033,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 89.87700465293038,
"release_spin_rate": 2282.6525343804033,
"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.877,
"release_spin_rate": 2282.6525,
"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.0001,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0005,
"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.0623,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.948,
"walk_factor": 0.97,
"homer_factor": 0.9347,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669467",
"espn_id": 4109034,
"player_name": "Andre Pallante",
"team": "STL",
"role": "pitcher",
"espn_rank": 55,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 55,
"gp_value": 25.0,
"gp_rank": 317,
"gs_value": 25.0,
"gs_rank": 59,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 3.5106,
"era_rank": null,
"w_value": 12.0,
"w_rank": 16,
"l_value": 6.0,
"l_rank": 111,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 141.0,
"ip_rank": 54,
"h_value": 130.0,
"h_rank": 57,
"er_value": 55.0,
"er_rank": 87,
"hr_value": 10.0,
"hr_rank": 158,
"bb_value": 45.0,
"bb_rank": 59,
"k_value": 98.0,
"k_rank": 105,
"k_per_9_value": 6.255319,
"k_per_9_rank": 52,
"whip_value": 1.2411,
"whip_rank": null,
"war_value": 2.45,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9947,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9947,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9347,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.948,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260909_STL@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_STL@SF | home | Blade Tidwell | Blade Tidwell | True | 5.0 | 4.0 | -3 | 1 | 4 | 3 | 5/5 | 1/2 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.4296875,
"WHIP": 1.2421875,
"IP": 42.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 5.111,
"recent_avg_IP": 5.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0419,
"sample_weight": 0.45,
"run_prevention_factor": 1.0036,
"strikeout_factor": 0.9913,
"walk_factor": 1.009,
"homer_factor": 1.0264,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 10.2,
"woba": 0.304,
"xwoba": 0.312,
"barrel_percent": 10.1,
"hard_hit_percent": 38.7,
"whiff_percent": 23.1
},
"espn_rank": {
"rank": 330,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "694918",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 15.0,
"R": 15.0,
"H": 19.0,
"BB": 14.0,
"SO": 23.0,
"HR": 4.0,
"BF": 107.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 3.8,
"BB": 2.8,
"SO": 4.6,
"HR": 0.8,
"BF": 21.4,
"Pitches": 89.4
},
"rates": {
"ERA": 5.2597,
"WHIP": 1.2857,
"ER_per_IP": 0.58442,
"H_per_IP": 0.74026,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.8961,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 36.2,
"ER": 19.0,
"R": 19.0,
"H": 30.0,
"BB": 17.0,
"SO": 31.0,
"HR": 4.0,
"BF": 154.0,
"Pitches": 642.0
},
"per_game": {
"IP": 3.2,
"ER": 1.9,
"R": 1.9,
"H": 3.0,
"BB": 1.7,
"SO": 3.1,
"HR": 0.4,
"BF": 15.4,
"Pitches": 64.2
},
"rates": {
"ERA": 4.6636,
"WHIP": 1.2818,
"ER_per_IP": 0.51818,
"H_per_IP": 0.81818,
"BB_per_IP": 0.46364,
"SO_per_IP": 0.84545,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 14,
"totals": {
"IP": 42.2,
"ER": 21.0,
"R": 21.0,
"H": 35.0,
"BB": 18.0,
"SO": 36.0,
"HR": 5.0,
"BF": 176.0,
"Pitches": 729.0
},
"per_game": {
"IP": 3.0,
"ER": 1.5,
"R": 1.5,
"H": 2.5,
"BB": 1.2857,
"SO": 2.5714,
"HR": 0.3571,
"BF": 12.5714,
"Pitches": 52.0714
},
"rates": {
"ERA": 4.4297,
"WHIP": 1.2422,
"ER_per_IP": 0.49219,
"H_per_IP": 0.82031,
"BB_per_IP": 0.42188,
"SO_per_IP": 0.84375,
"HR_per_IP": 0.11719
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.318,
"predicted_H": 3.633,
"predicted_BB": 2.007,
"predicted_SO": 3.868,
"predicted_HR": 0.591,
"predicted_ERA": 4.7827,
"predicted_WHIP": 1.2933
}
},
"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": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.318,
"final": 1.7101,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.633,
"final": 4.2635,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.007,
"final": 1.5426,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.868,
"final": 3.4677,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.591,
"final": 0.7796,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7827,
"final": 4.7827,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2933,
"final": 1.2933,
"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": 36.2,
"ER": 19,
"H": 30,
"BB": 17,
"SO": 31,
"HR": 4,
"ERA": 4.663636363636363,
"WHIP": 1.2818181818181817,
"K9": 7.6090909090909085,
"HR9": 0.9818181818181817,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 1.030435100194786,
"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": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 1.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694918",
"player_name": "Blade Tidwell",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 146,
"wins": 61,
"losses": 85,
"win_pct": 0.4178,
"runs_scored": 610.0,
"runs_allowed": 683.0,
"run_differential": -73.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.1781,
"avg_runs_allowed": 4.6781,
"offense_index": 0.9311,
"defense_index": 0.9592,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.6,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1312
},
"opponent": {
"team": "STL",
"games": 146,
"wins": 72,
"losses": 74,
"win_pct": 0.4932,
"runs_scored": 662.0,
"runs_allowed": 673.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0753,
"avg_runs_scored": 4.5342,
"avg_runs_allowed": 4.6096,
"offense_index": 1.0105,
"defense_index": 0.9734,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 5.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.05
},
"edges": {
"quality_edge": -0.0812,
"offense_edge": -0.0689,
"opponent_offense_edge": 0.0105,
"defense_strength": -0.0408,
"opponent_defense_weakness": 0.0266,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9951,
"run_prevention": 1.0098,
"strikeout": 0.9967
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694918",
"profile": {
"available": true,
"pitcher_id": "694918",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 110.0,
"k_percent": 20.5,
"bb_percent": 10.2,
"woba": 0.304,
"xwoba": 0.312,
"sweet_spot_percent": 28.6,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 38.7,
"avg_best_speed": 77.514,
"avg_hyper_speed": 94.0511,
"whiff_percent": 23.1,
"swing_percent": 44.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0104,
"command_and_miss": -0.2414,
"regression_edge": -0.2286,
"xwoba_edge": -0.0286,
"barrel_edge": -0.6667,
"hard_hit_edge": -0.1143,
"whiff_edge": -0.2714,
"bb_edge": -0.25,
"pitch_design_score": -0.0219
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694918",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.48410615286664,
"release_spin_rate": 2488.224804520724,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.48410615286664,
"release_spin_rate": 2488.224804520724,
"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.4841,
"release_spin_rate": 2488.2248,
"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.0219,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1567,
"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.0419,
"sample_weight": 0.45,
"run_prevention_factor": 1.0036,
"strikeout_factor": 0.9913,
"walk_factor": 1.009,
"homer_factor": 1.0264,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694918",
"espn_id": 4719088,
"player_name": "Blade Tidwell",
"team": "SF",
"role": "pitcher",
"espn_rank": 330,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 330,
"gp_value": 14.0,
"gp_rank": 471,
"gs_value": 6.0,
"gs_rank": 202,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 4.4296,
"era_rank": null,
"w_value": 0.0,
"w_rank": 532,
"l_value": 2.0,
"l_rank": 327,
"sv_value": 1.0,
"sv_rank": 138,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 42.2,
"ip_rank": 348,
"h_value": 35.0,
"h_rank": 368,
"er_value": 21.0,
"er_rank": 305,
"hr_value": 5.0,
"hr_rank": 316,
"bb_value": 18.0,
"bb_rank": 325,
"k_value": 36.0,
"k_rank": 373,
"k_per_9_value": 7.59375,
"k_per_9_rank": 28,
"whip_value": 1.2421,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0016,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0016,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.004,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0119,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9961,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260909_STL@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_TB@ATL | away | Griffin Jax | Griffin Jax | True | 5.0 | 5.0 | 0 | 0 | 1 | 1 | 2/2 | 0/1 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.530035335689046,
"WHIP": 1.2296819787985867,
"IP": 94.1,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.491,
"recent_avg_IP": 4.867,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0573,
"sample_weight": 1.0,
"run_prevention_factor": 1.0049,
"strikeout_factor": 1.0537,
"walk_factor": 0.978,
"homer_factor": 1.0696,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 8.1,
"woba": 0.314,
"xwoba": 0.328,
"barrel_percent": 9.2,
"hard_hit_percent": 41.0,
"whiff_percent": 30.9
},
"espn_rank": {
"rank": 660,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 94.1,
"season_ERA": 3.53,
"season_WHIP": 1.23,
"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": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "643377",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 13.0,
"R": 19.0,
"H": 27.0,
"BB": 7.0,
"SO": 30.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 406.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 3.8,
"H": 5.4,
"BB": 1.4,
"SO": 6.0,
"HR": 0.4,
"BF": 21.8,
"Pitches": 81.2
},
"rates": {
"ERA": 4.8082,
"WHIP": 1.3973,
"ER_per_IP": 0.53425,
"H_per_IP": 1.10959,
"BB_per_IP": 0.28767,
"SO_per_IP": 1.23288,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 22.0,
"R": 30.0,
"H": 46.0,
"BB": 14.0,
"SO": 60.0,
"HR": 7.0,
"BF": 212.0,
"Pitches": 784.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 3.0,
"H": 4.6,
"BB": 1.4,
"SO": 6.0,
"HR": 0.7,
"BF": 21.2,
"Pitches": 78.4
},
"rates": {
"ERA": 3.9338,
"WHIP": 1.1921,
"ER_per_IP": 0.43709,
"H_per_IP": 0.91391,
"BB_per_IP": 0.27815,
"SO_per_IP": 1.19205,
"HR_per_IP": 0.13907
}
},
"season": {
"games": 29,
"totals": {
"IP": 94.1,
"ER": 37.0,
"R": 50.0,
"H": 85.0,
"BB": 31.0,
"SO": 101.0,
"HR": 14.0,
"BF": 391.0,
"Pitches": 1449.0
},
"per_game": {
"IP": 3.1,
"ER": 1.2759,
"R": 1.7241,
"H": 2.931,
"BB": 1.069,
"SO": 3.4828,
"HR": 0.4828,
"BF": 13.4828,
"Pitches": 49.9655
},
"rates": {
"ERA": 3.53,
"WHIP": 1.2297,
"ER_per_IP": 0.39223,
"H_per_IP": 0.90106,
"BB_per_IP": 0.32862,
"SO_per_IP": 1.07067,
"HR_per_IP": 0.14841
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.244,
"predicted_H": 4.693,
"predicted_BB": 1.434,
"predicted_SO": 5.422,
"predicted_HR": 0.565,
"predicted_ERA": 4.2832,
"predicted_WHIP": 1.2994
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.244,
"final": 1.3191,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.693,
"final": 3.5831,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.434,
"final": 0.843,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.422,
"final": 5.2481,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.565,
"final": 0.3321,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2832,
"final": 4.2832,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2994,
"final": 1.2994,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 22,
"H": 46,
"BB": 14,
"SO": 60,
"HR": 7,
"ERA": 3.9337748344370858,
"WHIP": 1.1920529801324502,
"K9": 10.728476821192052,
"HR9": 1.2516556291390728,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.946081548117724,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "643377",
"player_name": "Griffin Jax",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 144,
"wins": 86,
"losses": 58,
"win_pct": 0.5972,
"runs_scored": 654.0,
"runs_allowed": 601.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3681,
"avg_runs_scored": 4.5417,
"avg_runs_allowed": 4.1736,
"offense_index": 1.0146,
"defense_index": 1.0725,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1628
},
"opponent": {
"team": "ATL",
"games": 145,
"wins": 85,
"losses": 60,
"win_pct": 0.5862,
"runs_scored": 666.0,
"runs_allowed": 553.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7793,
"avg_runs_scored": 4.5931,
"avg_runs_allowed": 3.8138,
"offense_index": 1.0261,
"defense_index": 1.1737,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.169
},
"edges": {
"quality_edge": -0.0062,
"offense_edge": 0.0146,
"opponent_offense_edge": 0.0261,
"defense_strength": 0.0725,
"opponent_defense_weakness": -0.1737,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0009,
"run_prevention": 0.9972,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "643377",
"profile": {
"available": true,
"pitcher_id": "643377",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 373.0,
"k_percent": 25.5,
"bb_percent": 8.1,
"woba": 0.314,
"xwoba": 0.328,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.8877,
"avg_hyper_speed": 94.2913,
"whiff_percent": 30.9,
"swing_percent": 48.3
},
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3124,
"command_and_miss": 0.575,
"regression_edge": -0.4,
"xwoba_edge": -0.4857,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.4429,
"whiff_edge": 0.8429,
"bb_edge": 0.275,
"pitch_design_score": 0.1027
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "643377",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.70945558397473,
"release_spin_rate": 2569.512998358212,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 91.70945558397473,
"release_spin_rate": 2569.512998358212,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.7095,
"release_spin_rate": 2569.513,
"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.1027,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7335,
"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.0573,
"sample_weight": 1.0,
"run_prevention_factor": 1.0049,
"strikeout_factor": 1.0537,
"walk_factor": 0.978,
"homer_factor": 1.0696,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "643377",
"espn_id": 42604,
"player_name": "Griffin Jax",
"team": "TB",
"role": "pitcher",
"espn_rank": 660,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 660,
"gp_value": 30.0,
"gp_rank": 215,
"gs_value": 19.0,
"gs_rank": 103,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 3.8162,
"era_rank": null,
"w_value": 6.0,
"w_rank": 103,
"l_value": 10.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 2.0,
"hld_rank": 228,
"ip_value": 94.1,
"ip_rank": 136,
"h_value": 88.0,
"h_rank": 127,
"er_value": 40.0,
"er_rank": 149,
"hr_value": 14.0,
"hr_rank": 107,
"bb_value": 32.0,
"bb_rank": 144,
"k_value": 101.0,
"k_rank": 99,
"k_per_9_value": 9.636043,
"k_per_9_rank": 19,
"whip_value": 1.272,
"whip_rank": null,
"war_value": -0.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0049,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0049,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0696,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0537,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_TB@ATL | home | Reynaldo López | Reynaldo López | True | 5.0 | 4.2 | -1 | 3 | 6 | 3 | 3/7 | 5/3 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6418604651162787,
"WHIP": 1.3395348837209302,
"IP": 71.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 4.515,
"recent_avg_IP": 5.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2256,
"sample_weight": 1.0,
"run_prevention_factor": 1.0192,
"strikeout_factor": 0.9794,
"walk_factor": 1.006,
"homer_factor": 1.0184,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 9.5,
"woba": 0.322,
"xwoba": 0.33,
"barrel_percent": 7.7,
"hard_hit_percent": 36.4,
"whiff_percent": 21.8
},
"espn_rank": {
"rank": 211,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 71.2,
"season_ERA": 3.642,
"season_WHIP": 1.34,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.423,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7426,
"prior_weight": 0.2574
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "625643",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 11.0,
"R": 11.0,
"H": 24.0,
"BB": 8.0,
"SO": 26.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 408.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.2,
"H": 4.8,
"BB": 1.6,
"SO": 5.2,
"HR": 0.8,
"BF": 21.0,
"Pitches": 81.6
},
"rates": {
"ERA": 3.96,
"WHIP": 1.28,
"ER_per_IP": 0.44,
"H_per_IP": 0.96,
"BB_per_IP": 0.32,
"SO_per_IP": 1.04,
"HR_per_IP": 0.16
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 35.1,
"ER": 12.0,
"R": 13.0,
"H": 31.0,
"BB": 12.0,
"SO": 34.0,
"HR": 4.0,
"BF": 146.0,
"Pitches": 604.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.3,
"H": 3.1,
"BB": 1.2,
"SO": 3.4,
"HR": 0.4,
"BF": 14.6,
"Pitches": 60.4
},
"rates": {
"ERA": 3.0566,
"WHIP": 1.217,
"ER_per_IP": 0.33962,
"H_per_IP": 0.87736,
"BB_per_IP": 0.33962,
"SO_per_IP": 0.96226,
"HR_per_IP": 0.11321
}
},
"season": {
"games": 24,
"totals": {
"IP": 71.2,
"ER": 29.0,
"R": 33.0,
"H": 67.0,
"BB": 29.0,
"SO": 66.0,
"HR": 10.0,
"BF": 306.0,
"Pitches": 1226.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2083,
"R": 1.375,
"H": 2.7917,
"BB": 1.2083,
"SO": 2.75,
"HR": 0.4167,
"BF": 12.75,
"Pitches": 51.0833
},
"rates": {
"ERA": 3.6419,
"WHIP": 1.3395,
"ER_per_IP": 0.40465,
"H_per_IP": 0.93488,
"BB_per_IP": 0.40465,
"SO_per_IP": 0.92093,
"HR_per_IP": 0.13953
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.847,
"predicted_H": 4.085,
"predicted_BB": 1.528,
"predicted_SO": 4.253,
"predicted_HR": 0.615,
"predicted_ERA": 3.816,
"predicted_WHIP": 1.2886
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4588,
"form_weight": 0.5412,
"form_reliability": 0.7426,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.423,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7426,
"prior_weight": 0.2574
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.847,
"final": 2.3759,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.085,
"final": 3.5873,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.528,
"final": 3.1208,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.253,
"final": 3.2194,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.615,
"final": 0.7916,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.816,
"final": 3.816,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2886,
"final": 1.2886,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 35.1,
"ER": 12,
"H": 31,
"BB": 12,
"SO": 34,
"HR": 4,
"ERA": 3.0566037735849054,
"WHIP": 1.2169811320754715,
"K9": 8.660377358490566,
"HR9": 1.0188679245283019,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-07-26T00:00:00"
},
"recent_form_boost": 0.8480230075704294,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.423,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7426,
"prior_weight": 0.2574
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "625643",
"player_name": "Reynaldo L\u00f3pez",
"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": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 145,
"wins": 85,
"losses": 60,
"win_pct": 0.5862,
"runs_scored": 666.0,
"runs_allowed": 553.0,
"run_differential": 113.0,
"run_differential_per_game": 0.7793,
"avg_runs_scored": 4.5931,
"avg_runs_allowed": 3.8138,
"offense_index": 1.0261,
"defense_index": 1.1737,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.7,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.169
},
"opponent": {
"team": "TB",
"games": 144,
"wins": 86,
"losses": 58,
"win_pct": 0.5972,
"runs_scored": 654.0,
"runs_allowed": 601.0,
"run_differential": 53.0,
"run_differential_per_game": 0.3681,
"avg_runs_scored": 4.5417,
"avg_runs_allowed": 4.1736,
"offense_index": 1.0146,
"defense_index": 1.0725,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1628
},
"edges": {
"quality_edge": 0.0062,
"offense_edge": 0.0261,
"opponent_offense_edge": 0.0146,
"defense_strength": 0.1737,
"opponent_defense_weakness": -0.0725,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0049,
"run_prevention": 0.9847,
"strikeout": 0.999
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "625643",
"profile": {
"available": true,
"pitcher_id": "625643",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 275.0,
"k_percent": 21.6,
"bb_percent": 9.5,
"woba": 0.322,
"xwoba": 0.33,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 36.4,
"avg_best_speed": 76.251,
"avg_hyper_speed": 93.6858,
"whiff_percent": 21.8,
"swing_percent": 45.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2619,
"command_and_miss": -0.2007,
"regression_edge": -0.2286,
"xwoba_edge": -0.5429,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.2143,
"whiff_edge": -0.4571,
"bb_edge": -0.075,
"pitch_design_score": -0.0489
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "625643",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 89.00255026873528,
"release_spin_rate": 2163.9662551979723,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 89.00255026873528,
"release_spin_rate": 2163.9662551979723,
"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.0026,
"release_spin_rate": 2163.9663,
"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.0489,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3493,
"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.2256,
"sample_weight": 1.0,
"run_prevention_factor": 1.0192,
"strikeout_factor": 0.9794,
"walk_factor": 1.006,
"homer_factor": 1.0184,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "625643",
"espn_id": 33860,
"player_name": "Reynaldo Lopez",
"team": "ATL",
"role": "pitcher",
"espn_rank": 211,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 211,
"gp_value": 24.0,
"gp_rank": 337,
"gs_value": 11.0,
"gs_rank": 162,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 3.6418,
"era_rank": null,
"w_value": 4.0,
"w_rank": 189,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 1.0,
"hld_rank": 270,
"ip_value": 71.2,
"ip_rank": 176,
"h_value": 67.0,
"h_rank": 172,
"er_value": 29.0,
"er_rank": 194,
"hr_value": 10.0,
"hr_rank": 158,
"bb_value": 29.0,
"bb_rank": 172,
"k_value": 66.0,
"k_rank": 199,
"k_per_9_value": 8.288372,
"k_per_9_rank": 30,
"whip_value": 1.3395,
"whip_rank": null,
"war_value": 0.78,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0192,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0192,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0184,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9794,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_TEX@SEA | away | Cody Bradford | Cody Bradford | True | 5.0 | 4.0 | -3 | 3 | 3 | 0 | 4/4 | 2/2 | 4/1 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.450549450549451,
"WHIP": 1.5824175824175826,
"IP": 30.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 5.056,
"recent_avg_IP": 5.2,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3176,
"sample_weight": 0.45,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.956,
"walk_factor": 0.964,
"homer_factor": 1.0536,
"regression_flag": "neutral",
"k_percent": 11.9,
"bb_percent": 5.2,
"woba": 0.38,
"xwoba": 0.355,
"barrel_percent": 11.0,
"hard_hit_percent": 40.0,
"whiff_percent": 18.0
},
"espn_rank": {
"rank": 319,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "674003",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 15.0,
"R": 15.0,
"H": 36.0,
"BB": 5.0,
"SO": 11.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 422.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 7.2,
"BB": 1.0,
"SO": 2.2,
"HR": 0.8,
"BF": 22.8,
"Pitches": 84.4
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.5769,
"ER_per_IP": 0.57692,
"H_per_IP": 1.38462,
"BB_per_IP": 0.19231,
"SO_per_IP": 0.42308,
"HR_per_IP": 0.15385
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 30.1,
"ER": 15.0,
"R": 15.0,
"H": 41.0,
"BB": 7.0,
"SO": 16.0,
"HR": 4.0,
"BF": 134.0,
"Pitches": 492.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5,
"H": 6.8333,
"BB": 1.1667,
"SO": 2.6667,
"HR": 0.6667,
"BF": 22.3333,
"Pitches": 82.0
},
"rates": {
"ERA": 4.4505,
"WHIP": 1.5824,
"ER_per_IP": 0.49451,
"H_per_IP": 1.35165,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.52747,
"HR_per_IP": 0.13187
}
},
"season": {
"games": 6,
"totals": {
"IP": 30.1,
"ER": 15.0,
"R": 15.0,
"H": 41.0,
"BB": 7.0,
"SO": 16.0,
"HR": 4.0,
"BF": 134.0,
"Pitches": 492.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5,
"H": 6.8333,
"BB": 1.1667,
"SO": 2.6667,
"HR": 0.6667,
"BF": 22.3333,
"Pitches": 82.0
},
"rates": {
"ERA": 4.4505,
"WHIP": 1.5824,
"ER_per_IP": 0.49451,
"H_per_IP": 1.35165,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.52747,
"HR_per_IP": 0.13187
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.763,
"predicted_H": 6.16,
"predicted_BB": 1.426,
"predicted_SO": 3.432,
"predicted_HR": 0.767,
"predicted_ERA": 4.8214,
"predicted_WHIP": 1.4708
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.763,
"final": 2.3494,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 6.16,
"final": 4.4472,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.426,
"final": 1.7371,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.432,
"final": 3.7399,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.767,
"final": 0.3513,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8214,
"final": 4.8214,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4708,
"final": 1.4708,
"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": 30.1,
"ER": 15,
"H": 41,
"BB": 7,
"SO": 16,
"HR": 4,
"ERA": 4.450549450549451,
"WHIP": 1.5824175824175826,
"K9": 4.747252747252747,
"HR9": 1.1868131868131868,
"games_pitched": 6,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 1.0138759244371247,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674003",
"player_name": "Cody Bradford",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 605.0,
"runs_allowed": 644.0,
"run_differential": -39.0,
"run_differential_per_game": -0.269,
"avg_runs_scored": 4.1724,
"avg_runs_allowed": 4.4414,
"offense_index": 0.9299,
"defense_index": 1.0103,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 4.8,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0009
},
"opponent": {
"team": "SEA",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 574.0,
"runs_allowed": 650.0,
"run_differential": -76.0,
"run_differential_per_game": -0.5241,
"avg_runs_scored": 3.9586,
"avg_runs_allowed": 4.4828,
"offense_index": 0.8822,
"defense_index": 1.001,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.9,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1665
},
"edges": {
"quality_edge": 0.1656,
"offense_edge": -0.0701,
"opponent_offense_edge": -0.1178,
"defense_strength": 0.0103,
"opponent_defense_weakness": -0.001,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0116,
"run_prevention": 0.9718,
"strikeout": 1.0144
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "674003",
"profile": {
"available": true,
"pitcher_id": "674003",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 63.0,
"k_percent": 11.9,
"bb_percent": 5.2,
"woba": 0.38,
"xwoba": 0.355,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 11.0,
"hard_hit_percent": 40.0,
"avg_best_speed": 79.54,
"avg_hyper_speed": 94.8622,
"whiff_percent": 18.0,
"swing_percent": 49.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9766,
"command_and_miss": -0.7993,
"regression_edge": 0.7143,
"xwoba_edge": -1.2571,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.3,
"whiff_edge": -1.0,
"bb_edge": 1.0,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674003",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 75,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 84.26618224573781,
"release_spin_rate": 1896.6627748383305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 75,
"pitch_usage": 0.0,
"release_speed": 84.26618224573781,
"release_spin_rate": 1896.6627748383305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.2662,
"release_spin_rate": 1896.6628,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3176,
"sample_weight": 0.45,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.956,
"walk_factor": 0.964,
"homer_factor": 1.0536,
"woba_minus_xwoba": 0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674003",
"espn_id": 4142539,
"player_name": "Cody Bradford",
"team": "TEX",
"role": "pitcher",
"espn_rank": 319,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 319,
"gp_value": 6.0,
"gp_rank": 608,
"gs_value": 6.0,
"gs_rank": 202,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 4.4505,
"era_rank": null,
"w_value": 0.0,
"w_rank": 532,
"l_value": 4.0,
"l_rank": 181,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 30.1,
"ip_rank": 432,
"h_value": 41.0,
"h_rank": 311,
"er_value": 15.0,
"er_rank": 420,
"hr_value": 4.0,
"hr_rank": 374,
"bb_value": 7.0,
"bb_rank": 551,
"k_value": 16.0,
"k_rank": 523,
"k_per_9_value": 4.747253,
"k_per_9_rank": 32,
"whip_value": 1.5824,
"whip_rank": null,
"war_value": 0.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0121,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0121,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9838,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0241,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9802,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260909_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"
}
} |
| 20260909 | 20260909_TEX@SEA | home | Kade Anderson | Kade Anderson | True | 5.0 | 6.0 | 3 | 3 | 1 | -2 | 5/6 | 3/1 | 7/5 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 5.4,
"WHIP": 1.4666666666666666,
"IP": 15.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1048,
"sample_weight": 0.45,
"run_prevention_factor": 0.9911,
"strikeout_factor": 0.9789,
"walk_factor": 1.0171,
"homer_factor": 0.9658,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.5,
"bb_percent": 11.1,
"woba": 0.357,
"xwoba": 0.276,
"barrel_percent": 6.7,
"hard_hit_percent": 31.1,
"whiff_percent": 21.3
},
"espn_rank": {
"rank": 540,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "807739",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 9.0,
"R": 9.0,
"H": 15.0,
"BB": 7.0,
"SO": 11.0,
"HR": 3.0,
"BF": 63.0,
"Pitches": 245.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.3333,
"SO": 3.6667,
"HR": 1.0,
"BF": 21.0,
"Pitches": 81.6667
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4667,
"ER_per_IP": 0.6,
"H_per_IP": 1.0,
"BB_per_IP": 0.46667,
"SO_per_IP": 0.73333,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 9.0,
"R": 9.0,
"H": 15.0,
"BB": 7.0,
"SO": 11.0,
"HR": 3.0,
"BF": 63.0,
"Pitches": 245.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.3333,
"SO": 3.6667,
"HR": 1.0,
"BF": 21.0,
"Pitches": 81.6667
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4667,
"ER_per_IP": 0.6,
"H_per_IP": 1.0,
"BB_per_IP": 0.46667,
"SO_per_IP": 0.73333,
"HR_per_IP": 0.2
}
},
"season": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 9.0,
"R": 9.0,
"H": 15.0,
"BB": 7.0,
"SO": 11.0,
"HR": 3.0,
"BF": 63.0,
"Pitches": 245.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 2.3333,
"SO": 3.6667,
"HR": 1.0,
"BF": 21.0,
"Pitches": 81.6667
},
"rates": {
"ERA": 5.4,
"WHIP": 1.4667,
"ER_per_IP": 0.6,
"H_per_IP": 1.0,
"BB_per_IP": 0.46667,
"SO_per_IP": 0.73333,
"HR_per_IP": 0.2
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.686,
"predicted_H": 4.911,
"predicted_BB": 2.035,
"predicted_SO": 4.311,
"predicted_HR": 0.831,
"predicted_ERA": 4.8351,
"predicted_WHIP": 1.3891
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.686,
"final": 2.8788,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.911,
"final": 4.9657,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.035,
"final": 2.6276,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.311,
"final": 5.9622,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.831,
"final": 0.9348,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8351,
"final": 4.8351,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3891,
"final": 1.3891,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 15.0,
"ER": 9,
"H": 15,
"BB": 7,
"SO": 11,
"HR": 3,
"ERA": 5.4,
"WHIP": 1.4666666666666666,
"K9": 6.6,
"HR9": 1.8,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-09-03T00:00:00"
},
"recent_form_boost": 1.057875874024964,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "807739",
"player_name": "Kade Anderson",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 574.0,
"runs_allowed": 650.0,
"run_differential": -76.0,
"run_differential_per_game": -0.5241,
"avg_runs_scored": 3.9586,
"avg_runs_allowed": 4.4828,
"offense_index": 0.8822,
"defense_index": 1.001,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.9,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1665
},
"opponent": {
"team": "TEX",
"games": 145,
"wins": 72,
"losses": 73,
"win_pct": 0.4966,
"runs_scored": 605.0,
"runs_allowed": 644.0,
"run_differential": -39.0,
"run_differential_per_game": -0.269,
"avg_runs_scored": 4.1724,
"avg_runs_allowed": 4.4414,
"offense_index": 0.9299,
"defense_index": 1.0103,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 4.8,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0009
},
"edges": {
"quality_edge": -0.1656,
"offense_edge": -0.1178,
"opponent_offense_edge": -0.0701,
"defense_strength": 0.001,
"opponent_defense_weakness": -0.0103,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9962,
"run_prevention": 0.997,
"strikeout": 1.0006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "807739",
"profile": {
"available": true,
"pitcher_id": "807739",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 17.5,
"bb_percent": 11.1,
"woba": 0.357,
"xwoba": 0.276,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 31.1,
"avg_best_speed": 77.0319,
"avg_hyper_speed": 92.7484,
"whiff_percent": 21.3,
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3232,
"command_and_miss": -0.5693,
"regression_edge": 2.0,
"xwoba_edge": 1.0,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.9714,
"whiff_edge": -0.5286,
"bb_edge": -0.475,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "807739",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.1048,
"sample_weight": 0.45,
"run_prevention_factor": 0.9911,
"strikeout_factor": 0.9789,
"walk_factor": 1.0171,
"homer_factor": 0.9658,
"woba_minus_xwoba": 0.081,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "807739",
"espn_id": 5198748,
"player_name": "Kade Anderson",
"team": "SEA",
"role": "pitcher",
"espn_rank": 540,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 540,
"gp_value": 3.0,
"gp_rank": 708,
"gs_value": 3.0,
"gs_rank": 252,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 5.4,
"era_rank": null,
"w_value": 0.0,
"w_rank": 532,
"l_value": 1.0,
"l_rank": 427,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 15.0,
"ip_rank": 562,
"h_value": 15.0,
"h_rank": 565,
"er_value": 9.0,
"er_rank": 555,
"hr_value": 3.0,
"hr_rank": 439,
"bb_value": 7.0,
"bb_rank": 551,
"k_value": 11.0,
"k_rank": 578,
"k_per_9_value": 6.6000004,
"k_per_9_rank": 27,
"whip_value": 1.4666,
"whip_rank": null,
"war_value": -0.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.996,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.996,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0077,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9846,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9905,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"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/20260909_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"
}
} |
| 20260909 | 20260909_TOR@OAK | away | Braydon Fisher | Braydon Fisher | True | 5.0 | 1.0 | -12 | 2 | 0 | -2 | 6/0 | 0/0 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.199052132701422,
"WHIP": 1.2369668246445498,
"IP": 70.1,
"games_started": null,
"games_pitched": 69,
"role_avg_IP": 1.125,
"recent_avg_IP": 1.133,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0572,
"sample_weight": 1.0,
"run_prevention_factor": 0.9951,
"strikeout_factor": 1.0263,
"walk_factor": 1.082,
"homer_factor": 1.0393,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 13.3,
"woba": 0.29,
"xwoba": 0.305,
"barrel_percent": 9.6,
"hard_hit_percent": 37.9,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 161,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 70.1,
"season_ERA": 3.199,
"season_WHIP": 1.237,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.155,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.739,
"prior_weight": 0.261
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680755",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 69,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.1,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 3.0,
"SO": 7.0,
"HR": 0.0,
"BF": 17.0,
"Pitches": 84.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.4,
"BB": 0.6,
"SO": 1.4,
"HR": 0.0,
"BF": 3.4,
"Pitches": 16.8
},
"rates": {
"ERA": 0.0,
"WHIP": 1.1538,
"ER_per_IP": 0.0,
"H_per_IP": 0.46154,
"BB_per_IP": 0.69231,
"SO_per_IP": 1.61538,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 8.1,
"ER": 1.0,
"R": 4.0,
"H": 7.0,
"BB": 4.0,
"SO": 11.0,
"HR": 1.0,
"BF": 34.0,
"Pitches": 150.0
},
"per_game": {
"IP": 0.2,
"ER": 0.1,
"R": 0.4,
"H": 0.7,
"BB": 0.4,
"SO": 1.1,
"HR": 0.1,
"BF": 3.4,
"Pitches": 15.0
},
"rates": {
"ERA": 1.08,
"WHIP": 1.32,
"ER_per_IP": 0.12,
"H_per_IP": 0.84,
"BB_per_IP": 0.48,
"SO_per_IP": 1.32,
"HR_per_IP": 0.12
}
},
"season": {
"games": 69,
"totals": {
"IP": 70.1,
"ER": 25.0,
"R": 32.0,
"H": 49.0,
"BB": 38.0,
"SO": 68.0,
"HR": 7.0,
"BF": 286.0,
"Pitches": 1140.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3623,
"R": 0.4638,
"H": 0.7101,
"BB": 0.5507,
"SO": 0.9855,
"HR": 0.1014,
"BF": 4.1449,
"Pitches": 16.5217
},
"rates": {
"ERA": 3.1991,
"WHIP": 1.237,
"ER_per_IP": 0.35545,
"H_per_IP": 0.69668,
"BB_per_IP": 0.54028,
"SO_per_IP": 0.96682,
"HR_per_IP": 0.09953
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.0,
"predicted_ER": 0.456,
"predicted_H": 1.55,
"predicted_BB": 1.132,
"predicted_SO": 2.7,
"predicted_HR": 0.179,
"predicted_ERA": 1.9257,
"predicted_WHIP": 1.2584
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4603,
"form_weight": 0.5397,
"form_reliability": 0.739,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.155,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.739,
"prior_weight": 0.261
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.0,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.456,
"final": 1.6269,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 1.55,
"final": 3.5982,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.132,
"final": 0.611,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.7,
"final": 3.7586,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.179,
"final": 0.0966,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9257,
"final": 1.9257,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2584,
"final": 1.2584,
"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": 8.1,
"ER": 1,
"H": 7,
"BB": 4,
"SO": 11,
"HR": 1,
"ERA": 1.08,
"WHIP": 1.3200000000000003,
"K9": 11.880000000000003,
"HR9": 1.08,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.8986099864336583,
"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": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.155,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.739,
"prior_weight": 0.261
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680755",
"player_name": "Braydon Fisher",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 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": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 146,
"wins": 73,
"losses": 73,
"win_pct": 0.5,
"runs_scored": 589.0,
"runs_allowed": 626.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2534,
"avg_runs_scored": 4.0342,
"avg_runs_allowed": 4.2877,
"offense_index": 0.8987,
"defense_index": 1.047,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.1,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.039
},
"opponent": {
"team": "OAK",
"games": 146,
"wins": 58,
"losses": 88,
"win_pct": 0.3973,
"runs_scored": 639.0,
"runs_allowed": 828.0,
"run_differential": -189.0,
"run_differential_per_game": -1.2945,
"avg_runs_scored": 4.3767,
"avg_runs_allowed": 5.6712,
"offense_index": 0.975,
"defense_index": 0.7915,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.2459
},
"edges": {
"quality_edge": 0.2849,
"offense_edge": -0.1013,
"opponent_offense_edge": -0.025,
"defense_strength": 0.047,
"opponent_defense_weakness": 0.2085,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0138,
"run_prevention": 0.9771,
"strikeout": 1.0105
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680755",
"profile": {
"available": true,
"pitcher_id": "680755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 251.0,
"k_percent": 23.8,
"bb_percent": 13.3,
"woba": 0.29,
"xwoba": 0.305,
"sweet_spot_percent": 30.5,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 37.9,
"avg_best_speed": 76.4342,
"avg_hyper_speed": 93.4739,
"whiff_percent": 27.8,
"swing_percent": 44.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1551,
"command_and_miss": 0.0507,
"regression_edge": -0.4286,
"xwoba_edge": 0.1714,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.0,
"whiff_edge": 0.4,
"bb_edge": -1.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "680755",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0572,
"sample_weight": 1.0,
"run_prevention_factor": 0.9951,
"strikeout_factor": 1.0263,
"walk_factor": 1.082,
"homer_factor": 1.0393,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680755",
"espn_id": 41318,
"player_name": "Braydon Fisher",
"team": "TOR",
"role": "pitcher",
"espn_rank": 161,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 161,
"gp_value": 69.0,
"gp_rank": 5,
"gs_value": 8.0,
"gs_rank": 188,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 3.199,
"era_rank": null,
"w_value": 3.0,
"w_rank": 242,
"l_value": 4.0,
"l_rank": 181,
"sv_value": 1.0,
"sv_rank": 138,
"hld_value": 12.0,
"hld_rank": 61,
"ip_value": 70.1,
"ip_rank": 180,
"h_value": 49.0,
"h_rank": 246,
"er_value": 25.0,
"er_rank": 241,
"hr_value": 7.0,
"hr_rank": 225,
"bb_value": 38.0,
"bb_rank": 100,
"k_value": 68.0,
"k_rank": 188,
"k_per_9_value": 8.701422,
"k_per_9_rank": 28,
"whip_value": 1.2369,
"whip_rank": null,
"war_value": 1.17,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9951,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9951,
"adjusted": 1
},
"predicted_BB": {
"original": 4.0,
"factor": 1.082,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0393,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0263,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -12 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
}
],
"provenance": {
"prediction": "output/games/20260909_TOR@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_TOR@OAK | home | Brady Basso | Brady Basso | True | 4.1 | 4.0 | -1 | 3 | 0 | -3 | 5/3 | 1/2 | 2/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.319999999999999,
"WHIP": 1.41,
"IP": 33.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 2.0,
"recent_avg_IP": 2.0,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0231,
"sample_weight": 0.45,
"run_prevention_factor": 0.998,
"strikeout_factor": 0.9745,
"walk_factor": 0.9478,
"homer_factor": 0.9771,
"regression_flag": "positive_pitcher_regression",
"k_percent": 16.6,
"bb_percent": 3.4,
"woba": 0.347,
"xwoba": 0.303,
"barrel_percent": 6.0,
"hard_hit_percent": 33.6,
"whiff_percent": 20.5
},
"espn_rank": {
"rank": 273,
"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": 6.708,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.573,
"prior_weight": 0.427
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669620",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.1,
"ER": 3.0,
"R": 4.0,
"H": 10.0,
"BB": 2.0,
"SO": 5.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 126.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6,
"R": 0.8,
"H": 2.0,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 7.6,
"Pitches": 25.2
},
"rates": {
"ERA": 2.8929,
"WHIP": 1.2857,
"ER_per_IP": 0.32143,
"H_per_IP": 1.07143,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.53571,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 17.1,
"ER": 7.0,
"R": 8.0,
"H": 20.0,
"BB": 2.0,
"SO": 10.0,
"HR": 2.0,
"BF": 72.0,
"Pitches": 254.0
},
"per_game": {
"IP": 1.2,
"ER": 0.7,
"R": 0.8,
"H": 2.0,
"BB": 0.2,
"SO": 1.0,
"HR": 0.2,
"BF": 7.2,
"Pitches": 25.4
},
"rates": {
"ERA": 3.6346,
"WHIP": 1.2692,
"ER_per_IP": 0.40385,
"H_per_IP": 1.15385,
"BB_per_IP": 0.11538,
"SO_per_IP": 0.57692,
"HR_per_IP": 0.11538
}
},
"season": {
"games": 22,
"totals": {
"IP": 33.1,
"ER": 16.0,
"R": 17.0,
"H": 42.0,
"BB": 5.0,
"SO": 24.0,
"HR": 3.0,
"BF": 145.0,
"Pitches": 505.0
},
"per_game": {
"IP": 1.2,
"ER": 0.7273,
"R": 0.7727,
"H": 1.9091,
"BB": 0.2273,
"SO": 1.0909,
"HR": 0.1364,
"BF": 6.5909,
"Pitches": 22.9545
},
"rates": {
"ERA": 4.32,
"WHIP": 1.41,
"ER_per_IP": 0.48,
"H_per_IP": 1.26,
"BB_per_IP": 0.15,
"SO_per_IP": 0.72,
"HR_per_IP": 0.09
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.25,
"predicted_H": 3.085,
"predicted_BB": 0.735,
"predicted_SO": 2.132,
"predicted_HR": 0.277,
"predicted_ERA": 3.8898,
"predicted_WHIP": 1.3209
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5304,
"form_weight": 0.4696,
"form_reliability": 0.573,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.708,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.573,
"prior_weight": 0.427
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 3.0,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.25,
"final": 2.1782,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.085,
"final": 4.1007,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.735,
"final": 0.8756,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 2.132,
"final": 2.062,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.277,
"final": 0.6605,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8898,
"final": 3.8898,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3209,
"final": 1.3209,
"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": 17.1,
"ER": 7,
"H": 20,
"BB": 2,
"SO": 10,
"HR": 2,
"ERA": 3.634615384615384,
"WHIP": 1.2692307692307692,
"K9": 5.192307692307692,
"HR9": 1.0384615384615383,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.9514170341829483,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.708,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.573,
"prior_weight": 0.427
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669620",
"player_name": "Brady Basso",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 146,
"wins": 58,
"losses": 88,
"win_pct": 0.3973,
"runs_scored": 639.0,
"runs_allowed": 828.0,
"run_differential": -189.0,
"run_differential_per_game": -1.2945,
"avg_runs_scored": 4.3767,
"avg_runs_allowed": 5.6712,
"offense_index": 0.975,
"defense_index": 0.7915,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.2459
},
"opponent": {
"team": "TOR",
"games": 146,
"wins": 73,
"losses": 73,
"win_pct": 0.5,
"runs_scored": 589.0,
"runs_allowed": 626.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2534,
"avg_runs_scored": 4.0342,
"avg_runs_allowed": 4.2877,
"offense_index": 0.8987,
"defense_index": 1.047,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.1,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.039
},
"edges": {
"quality_edge": -0.2849,
"offense_edge": -0.025,
"opponent_offense_edge": -0.1013,
"defense_strength": -0.2085,
"opponent_defense_weakness": -0.047,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9864,
"run_prevention": 1.0189,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669620",
"profile": {
"available": true,
"pitcher_id": "669620",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 100.0,
"k_percent": 16.6,
"bb_percent": 3.4,
"woba": 0.347,
"xwoba": 0.303,
"sweet_spot_percent": 39.7,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 33.6,
"avg_best_speed": 76.9327,
"avg_hyper_speed": 93.817,
"whiff_percent": 20.5,
"swing_percent": 52.3
},
"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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.002,
"command_and_miss": -0.2821,
"regression_edge": 1.2571,
"xwoba_edge": 0.2286,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.6143,
"whiff_edge": -0.6429,
"bb_edge": 1.45,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "669620",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0231,
"sample_weight": 0.45,
"run_prevention_factor": 0.998,
"strikeout_factor": 0.9745,
"walk_factor": 0.9478,
"homer_factor": 0.9771,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669620",
"espn_id": 4179551,
"player_name": "Brady Basso",
"team": "ATH",
"role": "pitcher",
"espn_rank": 273,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 273,
"gp_value": 22.0,
"gp_rank": 362,
"gs_value": 4.0,
"gs_rank": 234,
"qs_value": 0.0,
"qs_rank": 209,
"era_value": 4.32,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 2.0,
"l_rank": 327,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 3.0,
"hld_rank": 207,
"ip_value": 33.1,
"ip_rank": 407,
"h_value": 42.0,
"h_rank": 301,
"er_value": 16.0,
"er_rank": 395,
"hr_value": 3.0,
"hr_rank": 439,
"bb_value": 5.0,
"bb_rank": 617,
"k_value": 24.0,
"k_rank": 454,
"k_per_9_value": 6.48,
"k_per_9_rank": 30,
"whip_value": 1.41,
"whip_rank": null,
"war_value": 0.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9991,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9991,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9765,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9897,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9885,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 74,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260909_TOR@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260909 | 20260909_WAS@SD | away | Jackson Kent | Jackson Kent | True | 4.2 | 3.0 | -5 | 5 | 5 | 0 | 8/8 | 2/1 | 4/2 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 5.5479452054794525,
"WHIP": 1.6849315068493151,
"IP": 24.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.867,
"recent_avg_IP": 4.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2166,
"sample_weight": 0.45,
"run_prevention_factor": 1.0184,
"strikeout_factor": 0.9892,
"walk_factor": 1.0702,
"homer_factor": 1.0297,
"regression_flag": "neutral",
"k_percent": 18.8,
"bb_percent": 17.0,
"woba": 0.327,
"xwoba": 0.347,
"barrel_percent": 8.3,
"hard_hit_percent": 40.3,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 559,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800600",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 15.0,
"R": 16.0,
"H": 22.0,
"BB": 19.0,
"SO": 21.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.2,
"H": 4.4,
"BB": 3.8,
"SO": 4.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 89.0
},
"rates": {
"ERA": 5.5479,
"WHIP": 1.6849,
"ER_per_IP": 0.61644,
"H_per_IP": 0.90411,
"BB_per_IP": 0.78082,
"SO_per_IP": 0.86301,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 15.0,
"R": 16.0,
"H": 22.0,
"BB": 19.0,
"SO": 21.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.2,
"H": 4.4,
"BB": 3.8,
"SO": 4.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 89.0
},
"rates": {
"ERA": 5.5479,
"WHIP": 1.6849,
"ER_per_IP": 0.61644,
"H_per_IP": 0.90411,
"BB_per_IP": 0.78082,
"SO_per_IP": 0.86301,
"HR_per_IP": 0.0411
}
},
"season": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 15.0,
"R": 16.0,
"H": 22.0,
"BB": 19.0,
"SO": 21.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.2,
"H": 4.4,
"BB": 3.8,
"SO": 4.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 89.0
},
"rates": {
"ERA": 5.5479,
"WHIP": 1.6849,
"ER_per_IP": 0.61644,
"H_per_IP": 0.90411,
"BB_per_IP": 0.78082,
"SO_per_IP": 0.86301,
"HR_per_IP": 0.0411
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.79,
"predicted_H": 4.689,
"predicted_BB": 2.88,
"predicted_SO": 4.506,
"predicted_HR": 0.468,
"predicted_ERA": 5.022,
"predicted_WHIP": 1.5137
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.79,
"final": 3.4691,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 4.689,
"final": 6.5473,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.88,
"final": 2.3861,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.506,
"final": 3.0995,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.468,
"final": 0.2053,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.022,
"final": 5.022,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5137,
"final": 1.5137,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 24.1,
"ER": 15,
"H": 22,
"BB": 19,
"SO": 21,
"HR": 1,
"ERA": 5.547945205479452,
"WHIP": 1.684931506849315,
"K9": 7.767123287671232,
"HR9": 0.3698630136986301,
"games_pitched": 5,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.1114872419829946,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 8,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800600",
"player_name": "Jackson Kent",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 147,
"wins": 67,
"losses": 80,
"win_pct": 0.4558,
"runs_scored": 754.0,
"runs_allowed": 747.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0476,
"avg_runs_scored": 5.1293,
"avg_runs_allowed": 5.0816,
"offense_index": 1.1431,
"defense_index": 0.883,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.3,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1017
},
"opponent": {
"team": "SD",
"games": 145,
"wins": 77,
"losses": 68,
"win_pct": 0.531,
"runs_scored": 610.0,
"runs_allowed": 600.0,
"run_differential": 10.0,
"run_differential_per_game": 0.069,
"avg_runs_scored": 4.2069,
"avg_runs_allowed": 4.1379,
"offense_index": 0.9376,
"defense_index": 1.0844,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.9,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0348
},
"edges": {
"quality_edge": -0.1365,
"offense_edge": 0.1431,
"opponent_offense_edge": -0.0624,
"defense_strength": -0.117,
"opponent_defense_weakness": -0.0844,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9935,
"run_prevention": 1.0085,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800600",
"profile": {
"available": true,
"pitcher_id": "800600",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 41.0,
"k_percent": 18.8,
"bb_percent": 17.0,
"woba": 0.327,
"xwoba": 0.347,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 40.3,
"avg_best_speed": 74.3737,
"avg_hyper_speed": 94.083,
"whiff_percent": 24.0,
"swing_percent": 44.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4484,
"command_and_miss": -0.6457,
"regression_edge": -0.5714,
"xwoba_edge": -1.0286,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.3429,
"whiff_edge": -0.1429,
"bb_edge": -1.95,
"pitch_design_score": -0.0644
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800600",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 88.72623626373627,
"release_spin_rate": 2092.4313186813188,
"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": 81,
"pitch_usage": 0.0,
"release_speed": 88.72623626373627,
"release_spin_rate": 2092.4313186813188,
"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.7262,
"release_spin_rate": 2092.4313,
"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.0644,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4598,
"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.2166,
"sample_weight": 0.45,
"run_prevention_factor": 1.0184,
"strikeout_factor": 0.9892,
"walk_factor": 1.0702,
"homer_factor": 1.0297,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800600",
"espn_id": 5007807,
"player_name": "Jackson Kent",
"team": "WSH",
"role": "pitcher",
"espn_rank": 559,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 559,
"gp_value": 5.0,
"gp_rank": 626,
"gs_value": 5.0,
"gs_rank": 220,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.5479,
"era_rank": null,
"w_value": 1.0,
"w_rank": 408,
"l_value": 3.0,
"l_rank": 238,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 24.1,
"ip_rank": 477,
"h_value": 22.0,
"h_rank": 487,
"er_value": 15.0,
"er_rank": 420,
"hr_value": 1.0,
"hr_rank": 612,
"bb_value": 19.0,
"bb_rank": 312,
"k_value": 21.0,
"k_rank": 476,
"k_per_9_value": 7.7671237,
"k_per_9_rank": 26,
"whip_value": 1.6849,
"whip_rank": null,
"war_value": -0.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0083,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0083,
"adjusted": 5
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0316,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0134,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9951,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 8,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260909_WAS@SD.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"
}
} |
| 20260909 | 20260909_WAS@SD | home | Walker Buehler | Walker Buehler | True | 5.1 | 2.1 | -9 | 1 | 2 | 1 | 2/3 | 2/2 | 9/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.555012224938875,
"WHIP": 1.3422982885085573,
"IP": 136.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.869,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0109,
"strikeout_factor": 0.9611,
"walk_factor": 0.994,
"homer_factor": 1.0261,
"regression_flag": "neutral",
"k_percent": 20.3,
"bb_percent": 8.9,
"woba": 0.326,
"xwoba": 0.314,
"barrel_percent": 8.2,
"hard_hit_percent": 38.6,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 203,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "621111",
"report_date": "20260909",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 8.0,
"R": 8.0,
"H": 19.0,
"BB": 6.0,
"SO": 22.0,
"HR": 4.0,
"BF": 103.0,
"Pitches": 417.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 3.8,
"BB": 1.2,
"SO": 4.4,
"HR": 0.8,
"BF": 20.6,
"Pitches": 83.4
},
"rates": {
"ERA": 2.5714,
"WHIP": 0.8929,
"ER_per_IP": 0.28571,
"H_per_IP": 0.67857,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 20.0,
"R": 21.0,
"H": 42.0,
"BB": 20.0,
"SO": 37.0,
"HR": 7.0,
"BF": 201.0,
"Pitches": 819.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.1,
"H": 4.2,
"BB": 2.0,
"SO": 3.7,
"HR": 0.7,
"BF": 20.1,
"Pitches": 81.9
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.2568,
"ER_per_IP": 0.40541,
"H_per_IP": 0.85135,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.75,
"HR_per_IP": 0.14189
}
},
"season": {
"games": 28,
"totals": {
"IP": 136.1,
"ER": 69.0,
"R": 70.0,
"H": 132.0,
"BB": 51.0,
"SO": 117.0,
"HR": 18.0,
"BF": 576.0,
"Pitches": 2294.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4643,
"R": 2.5,
"H": 4.7143,
"BB": 1.8214,
"SO": 4.1786,
"HR": 0.6429,
"BF": 20.5714,
"Pitches": 81.9286
},
"rates": {
"ERA": 4.555,
"WHIP": 1.3423,
"ER_per_IP": 0.50611,
"H_per_IP": 0.96822,
"BB_per_IP": 0.37408,
"SO_per_IP": 0.85819,
"HR_per_IP": 0.13203
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.075,
"predicted_H": 4.368,
"predicted_BB": 1.708,
"predicted_SO": 4.301,
"predicted_HR": 0.749,
"predicted_ERA": 3.5195,
"predicted_WHIP": 1.1454
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.075,
"final": 1.6299,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.368,
"final": 3.3876,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.708,
"final": 1.8289,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 4.301,
"final": 6.2464,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.749,
"final": 0.4389,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5195,
"final": 3.5195,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1454,
"final": 1.1454,
"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": 20,
"H": 42,
"BB": 20,
"SO": 37,
"HR": 7,
"ERA": 3.648648648648649,
"WHIP": 1.2567567567567568,
"K9": 6.750000000000001,
"HR9": 1.2770270270270272,
"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-04T00:00:00"
},
"recent_form_boost": 0.9156224466321327,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 9.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 145,
"wins": 77,
"losses": 68,
"win_pct": 0.531,
"runs_scored": 610.0,
"runs_allowed": 600.0,
"run_differential": 10.0,
"run_differential_per_game": 0.069,
"avg_runs_scored": 4.2069,
"avg_runs_allowed": 4.1379,
"offense_index": 0.9376,
"defense_index": 1.0844,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.9,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0348
},
"opponent": {
"team": "WAS",
"games": 147,
"wins": 67,
"losses": 80,
"win_pct": 0.4558,
"runs_scored": 754.0,
"runs_allowed": 747.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0476,
"avg_runs_scored": 5.1293,
"avg_runs_allowed": 5.0816,
"offense_index": 1.1431,
"defense_index": 0.883,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.3,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.1017
},
"edges": {
"quality_edge": 0.1365,
"offense_edge": -0.0624,
"opponent_offense_edge": 0.1431,
"defense_strength": 0.0844,
"opponent_defense_weakness": 0.117,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0023,
"run_prevention": 1.0076,
"strikeout": 0.9926
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 514.0,
"k_percent": 20.3,
"bb_percent": 8.9,
"woba": 0.326,
"xwoba": 0.314,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.6,
"avg_best_speed": 79.0109,
"avg_hyper_speed": 94.0834,
"whiff_percent": 19.9,
"swing_percent": 45.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.6392,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1257,
"command_and_miss": -0.3493,
"regression_edge": 0.3429,
"xwoba_edge": -0.0857,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.1,
"whiff_edge": -0.7286,
"bb_edge": 0.075,
"pitch_design_score": -0.0102
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.69389206083017,
"release_spin_rate": 2201.5990522722864,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.6939,
"release_spin_rate": 2201.5991,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0102,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0727,
"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.1277,
"sample_weight": 1.0,
"run_prevention_factor": 1.0109,
"strikeout_factor": 0.9611,
"walk_factor": 0.994,
"homer_factor": 1.0261,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621111",
"espn_id": 39251,
"player_name": "Walker Buehler",
"team": "SD",
"role": "pitcher",
"espn_rank": 203,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 203,
"gp_value": 28.0,
"gp_rank": 257,
"gs_value": 28.0,
"gs_rank": 21,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 4.555,
"era_rank": null,
"w_value": 8.0,
"w_rank": 65,
"l_value": 6.0,
"l_rank": 111,
"sv_value": 0.0,
"sv_rank": 248,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 136.1,
"ip_rank": 66,
"h_value": 132.0,
"h_rank": 52,
"er_value": 69.0,
"er_rank": 35,
"hr_value": 18.0,
"hr_rank": 55,
"bb_value": 51.0,
"bb_rank": 35,
"k_value": 117.0,
"k_rank": 75,
"k_per_9_value": 7.7237163,
"k_per_9_rank": 30,
"whip_value": 1.3422,
"whip_rank": null,
"war_value": 0.87,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0109,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0109,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.994,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0261,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9611,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260909_WAS@SD.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"
}
} |