| 20260827 | 20260827_ARI@SF | away | Jose Cabrera | Jose Cabrera | True | 4.1 | 4.1 | 0 | 3 | 2 | -1 | 5/3 | 2/1 | 4/4 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 5.60377358490566,
"WHIP": 1.5283018867924527,
"IP": 17.2,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.417,
"recent_avg_IP": 4.417,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1903,
"sample_weight": 0.45,
"run_prevention_factor": 1.0162,
"strikeout_factor": 0.9686,
"walk_factor": 0.9946,
"homer_factor": 1.0058,
"regression_flag": "neutral",
"k_percent": 14.8,
"bb_percent": 8.6,
"woba": 0.355,
"xwoba": 0.353,
"barrel_percent": 6.7,
"hard_hit_percent": 35.0,
"whiff_percent": 20.2
},
"espn_rank": {
"rank": 555,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "703615",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 279.0
},
"per_game": {
"IP": 4.1,
"ER": 2.75,
"R": 2.75,
"H": 5.0,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.25,
"Pitches": 69.75
},
"rates": {
"ERA": 5.6038,
"WHIP": 1.5283,
"ER_per_IP": 0.62264,
"H_per_IP": 1.13208,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.67925,
"HR_per_IP": 0.16981
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 279.0
},
"per_game": {
"IP": 4.1,
"ER": 2.75,
"R": 2.75,
"H": 5.0,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.25,
"Pitches": 69.75
},
"rates": {
"ERA": 5.6038,
"WHIP": 1.5283,
"ER_per_IP": 0.62264,
"H_per_IP": 1.13208,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.67925,
"HR_per_IP": 0.16981
}
},
"season": {
"games": 4,
"totals": {
"IP": 17.2,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 7.0,
"SO": 12.0,
"HR": 3.0,
"BF": 81.0,
"Pitches": 279.0
},
"per_game": {
"IP": 4.1,
"ER": 2.75,
"R": 2.75,
"H": 5.0,
"BB": 1.75,
"SO": 3.0,
"HR": 0.75,
"BF": 20.25,
"Pitches": 69.75
},
"rates": {
"ERA": 5.6038,
"WHIP": 1.5283,
"ER_per_IP": 0.62264,
"H_per_IP": 1.13208,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.67925,
"HR_per_IP": 0.16981
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.512,
"predicted_H": 4.726,
"predicted_BB": 1.722,
"predicted_SO": 3.73,
"predicted_HR": 0.71,
"predicted_ERA": 5.003,
"predicted_WHIP": 1.427
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.512,
"final": 2.2126,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.726,
"final": 4.3015,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.722,
"final": 1.8846,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.73,
"final": 3.3031,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.71,
"final": 0.2948,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.003,
"final": 5.003,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.427,
"final": 1.427,
"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": 17.2,
"ER": 11,
"H": 20,
"BB": 7,
"SO": 12,
"HR": 3,
"ERA": 5.603773584905661,
"WHIP": 1.528301886792453,
"K9": 6.113207547169812,
"HR9": 1.528301886792453,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-07-08T00:00:00"
},
"recent_form_boost": 1.0803435636104932,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"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": 4.1,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "703615",
"player_name": "Jose Cabrera",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": 4,
"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": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 3,
"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": {
"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": "ARI",
"games": 134,
"wins": 71,
"losses": 63,
"win_pct": 0.5299,
"runs_scored": 605.0,
"runs_allowed": 600.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0373,
"avg_runs_scored": 4.5149,
"avg_runs_allowed": 4.4776,
"offense_index": 1.0064,
"defense_index": 1.0019,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": 0.03
},
"opponent": {
"team": "SF",
"games": 133,
"wins": 54,
"losses": 79,
"win_pct": 0.406,
"runs_scored": 540.0,
"runs_allowed": 614.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5564,
"avg_runs_scored": 4.0602,
"avg_runs_allowed": 4.6165,
"offense_index": 0.9051,
"defense_index": 0.9717,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.1,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.2181
},
"edges": {
"quality_edge": 0.2481,
"offense_edge": 0.0064,
"opponent_offense_edge": -0.0949,
"defense_strength": 0.0019,
"opponent_defense_weakness": 0.0283,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0138,
"run_prevention": 0.9722,
"strikeout": 1.015
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "703615",
"profile": {
"available": true,
"pitcher_id": "703615",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 60.0,
"k_percent": 14.8,
"bb_percent": 8.6,
"woba": 0.355,
"xwoba": 0.353,
"sweet_spot_percent": 23.3,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 35.0,
"avg_best_speed": 76.0794,
"avg_hyper_speed": 94.2725,
"whiff_percent": 20.2,
"swing_percent": 44.4
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4429,
"command_and_miss": -0.6829,
"regression_edge": 0.0571,
"xwoba_edge": -1.2,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.4,
"whiff_edge": -0.7143,
"bb_edge": 0.15,
"pitch_design_score": -0.0389
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "703615",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 89.15315412186379,
"release_spin_rate": 2339.8362135176653,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 89.15315412186379,
"release_spin_rate": 2339.8362135176653,
"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.1532,
"release_spin_rate": 2339.8362,
"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.0389,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2777,
"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.1903,
"sample_weight": 0.45,
"run_prevention_factor": 1.0162,
"strikeout_factor": 0.9686,
"walk_factor": 0.9946,
"homer_factor": 1.0058,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "703615",
"espn_id": 5270084,
"player_name": "Jose Cabrera",
"team": "ARI",
"role": "pitcher",
"espn_rank": 555,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 555,
"gp_value": 4.0,
"gp_rank": 634,
"gs_value": 4.0,
"gs_rank": 221,
"qs_value": 0.0,
"qs_rank": 205,
"era_value": 5.6037,
"era_rank": null,
"w_value": 0.0,
"w_rank": 509,
"l_value": 2.0,
"l_rank": 305,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 17.2,
"ip_rank": 512,
"h_value": 20.0,
"h_rank": 489,
"er_value": 11.0,
"er_rank": 471,
"hr_value": 3.0,
"hr_rank": 413,
"bb_value": 7.0,
"bb_rank": 531,
"k_value": 12.0,
"k_rank": 544,
"k_per_9_value": 6.1132073,
"k_per_9_rank": 28.0,
"whip_value": 1.5283,
"whip_rank": null,
"war_value": -0.07,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0073,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0073,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0026,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9859,
"adjusted": 3
}
}
}
},
"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": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260827_ARI@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_ARI@SF | home | Landen Roupp | Landen Roupp | True | 5.0 | 5.0 | 0 | 1 | 1 | 0 | 5/4 | 1/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.344059405940595,
"WHIP": 1.3143564356435644,
"IP": 134.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.387,
"recent_avg_IP": 4.933,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2181,
"sample_weight": 1.0,
"run_prevention_factor": 0.9815,
"strikeout_factor": 1.0034,
"walk_factor": 1.038,
"homer_factor": 0.9011,
"regression_flag": "neutral",
"k_percent": 22.6,
"bb_percent": 11.1,
"woba": 0.3,
"xwoba": 0.3,
"barrel_percent": 4.8,
"hard_hit_percent": 29.3,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 226,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "694738",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 17.0,
"R": 18.0,
"H": 22.0,
"BB": 19.0,
"SO": 17.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 449.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.6,
"H": 4.4,
"BB": 3.8,
"SO": 3.4,
"HR": 0.4,
"BF": 23.4,
"Pitches": 89.8
},
"rates": {
"ERA": 6.2027,
"WHIP": 1.6622,
"ER_per_IP": 0.68919,
"H_per_IP": 0.89189,
"BB_per_IP": 0.77027,
"SO_per_IP": 0.68919,
"HR_per_IP": 0.08108
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 28.0,
"R": 29.0,
"H": 42.0,
"BB": 31.0,
"SO": 41.0,
"HR": 5.0,
"BF": 236.0,
"Pitches": 933.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.9,
"H": 4.2,
"BB": 3.1,
"SO": 4.1,
"HR": 0.5,
"BF": 23.6,
"Pitches": 93.3
},
"rates": {
"ERA": 4.638,
"WHIP": 1.3436,
"ER_per_IP": 0.51534,
"H_per_IP": 0.77301,
"BB_per_IP": 0.57055,
"SO_per_IP": 0.7546,
"HR_per_IP": 0.09202
}
},
"season": {
"games": 25,
"totals": {
"IP": 134.2,
"ER": 65.0,
"R": 70.0,
"H": 113.0,
"BB": 64.0,
"SO": 130.0,
"HR": 10.0,
"BF": 574.0,
"Pitches": 2373.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.8,
"H": 4.52,
"BB": 2.56,
"SO": 5.2,
"HR": 0.4,
"BF": 22.96,
"Pitches": 94.92
},
"rates": {
"ERA": 4.3441,
"WHIP": 1.3144,
"ER_per_IP": 0.48267,
"H_per_IP": 0.83911,
"BB_per_IP": 0.47525,
"SO_per_IP": 0.96535,
"HR_per_IP": 0.07426
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.952,
"predicted_H": 4.445,
"predicted_BB": 3.071,
"predicted_SO": 4.104,
"predicted_HR": 0.485,
"predicted_ERA": 5.1565,
"predicted_WHIP": 1.4586
}
},
"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": 1.0,
"form": 2.952,
"final": 2.1313,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.445,
"final": 4.6783,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 3.071,
"final": 2.2003,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.104,
"final": 4.0603,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.485,
"final": 0.2811,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1565,
"final": 5.1565,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4586,
"final": 1.4586,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 28,
"H": 42,
"BB": 31,
"SO": 41,
"HR": 5,
"ERA": 4.638036809815952,
"WHIP": 1.343558282208589,
"K9": 6.791411042944786,
"HR9": 0.8282208588957056,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 1.0259764326094625,
"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": 4.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": "694738",
"player_name": "Landen Roupp",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 133,
"wins": 54,
"losses": 79,
"win_pct": 0.406,
"runs_scored": 540.0,
"runs_allowed": 614.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5564,
"avg_runs_scored": 4.0602,
"avg_runs_allowed": 4.6165,
"offense_index": 0.9051,
"defense_index": 0.9717,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.1,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.2181
},
"opponent": {
"team": "ARI",
"games": 134,
"wins": 71,
"losses": 63,
"win_pct": 0.5299,
"runs_scored": 605.0,
"runs_allowed": 600.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0373,
"avg_runs_scored": 4.5149,
"avg_runs_allowed": 4.4776,
"offense_index": 1.0064,
"defense_index": 1.0019,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.6,
"run_differential": -15.0
},
"available": true,
"quality_score": 0.03
},
"edges": {
"quality_edge": -0.2481,
"offense_edge": -0.0949,
"opponent_offense_edge": 0.0064,
"defense_strength": -0.0283,
"opponent_defense_weakness": -0.0019,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.989,
"run_prevention": 1.0163,
"strikeout": 0.992
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694738",
"profile": {
"available": true,
"pitcher_id": "694738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 22.6,
"bb_percent": 11.1,
"woba": 0.3,
"xwoba": 0.3,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 29.3,
"avg_best_speed": 75.1243,
"avg_hyper_speed": 92.5778,
"whiff_percent": 25.2,
"swing_percent": 43.4
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4384,
"command_and_miss": -0.0564,
"regression_edge": 0.0,
"xwoba_edge": 0.3143,
"barrel_edge": 0.5111,
"hard_hit_edge": 1.2143,
"whiff_edge": 0.0,
"bb_edge": -0.475,
"pitch_design_score": -0.1593
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 87.00224317148336,
"release_spin_rate": 2326.4570396123822,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.0022,
"release_spin_rate": 2326.457,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1593,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.138,
"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.2181,
"sample_weight": 1.0,
"run_prevention_factor": 0.9815,
"strikeout_factor": 1.0034,
"walk_factor": 1.038,
"homer_factor": 0.9011,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694738",
"espn_id": 4345404,
"player_name": "Landen Roupp",
"team": "SF",
"role": "pitcher",
"espn_rank": 226,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 226,
"gp_value": 25.0,
"gp_rank": 279,
"gs_value": 25.0,
"gs_rank": 35,
"qs_value": 10.0,
"qs_rank": 50,
"era_value": 4.344,
"era_rank": 44.0,
"w_value": 7.0,
"w_rank": 73,
"l_value": 13.0,
"l_rank": 2,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 134.2,
"ip_rank": 51,
"h_value": 113.0,
"h_rank": 78,
"er_value": 65.0,
"er_rank": 29,
"hr_value": 10.0,
"hr_rank": 144,
"bb_value": 64.0,
"bb_rank": 6,
"k_value": 130.0,
"k_rank": 42,
"k_per_9_value": 8.688119,
"k_per_9_rank": 22.0,
"whip_value": 1.3143,
"whip_rank": 41.0,
"war_value": 0.61,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9815,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9815,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.038,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9011,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0034,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 84,
"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/20260827_ARI@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_BAL@STL | away | Trevor Rogers | Trevor Rogers | True | 5.2 | 5.0 | -2 | 2 | 6 | 4 | 4/7 | 1/1 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.13819095477387,
"WHIP": 1.236180904522613,
"IP": 132.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.528,
"recent_avg_IP": 5.8,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9829,
"walk_factor": 0.946,
"homer_factor": 0.9962,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 6.5,
"woba": 0.306,
"xwoba": 0.304,
"barrel_percent": 7.0,
"hard_hit_percent": 38.5,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669432",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 13.0,
"R": 16.0,
"H": 28.0,
"BB": 4.0,
"SO": 31.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 3.2,
"H": 5.6,
"BB": 0.8,
"SO": 6.2,
"HR": 0.8,
"BF": 24.2,
"Pitches": 93.4
},
"rates": {
"ERA": 4.0345,
"WHIP": 1.1034,
"ER_per_IP": 0.44828,
"H_per_IP": 0.96552,
"BB_per_IP": 0.13793,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.13793
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 18.0,
"R": 21.0,
"H": 53.0,
"BB": 12.0,
"SO": 60.0,
"HR": 5.0,
"BF": 243.0,
"Pitches": 923.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 2.1,
"H": 5.3,
"BB": 1.2,
"SO": 6.0,
"HR": 0.5,
"BF": 24.3,
"Pitches": 92.3
},
"rates": {
"ERA": 2.7151,
"WHIP": 1.0894,
"ER_per_IP": 0.30168,
"H_per_IP": 0.88827,
"BB_per_IP": 0.20112,
"SO_per_IP": 1.00559,
"HR_per_IP": 0.0838
}
},
"season": {
"games": 24,
"totals": {
"IP": 132.2,
"ER": 61.0,
"R": 66.0,
"H": 128.0,
"BB": 36.0,
"SO": 114.0,
"HR": 14.0,
"BF": 556.0,
"Pitches": 2156.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5417,
"R": 2.75,
"H": 5.3333,
"BB": 1.5,
"SO": 4.75,
"HR": 0.5833,
"BF": 23.1667,
"Pitches": 89.8333
},
"rates": {
"ERA": 4.1382,
"WHIP": 1.2362,
"ER_per_IP": 0.4598,
"H_per_IP": 0.96482,
"BB_per_IP": 0.27136,
"SO_per_IP": 0.8593,
"HR_per_IP": 0.10553
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.404,
"predicted_H": 5.446,
"predicted_BB": 1.257,
"predicted_SO": 5.729,
"predicted_HR": 0.683,
"predicted_ERA": 3.7536,
"predicted_WHIP": 1.1632
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.404,
"final": 2.2332,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.446,
"final": 4.8346,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.257,
"final": 1.1483,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.729,
"final": 5.8436,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.683,
"final": 0.3942,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7536,
"final": 3.7536,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1632,
"final": 1.1632,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 18,
"H": 53,
"BB": 12,
"SO": 60,
"HR": 5,
"ERA": 2.7150837988826817,
"WHIP": 1.0893854748603353,
"K9": 9.050279329608939,
"HR9": 0.7541899441340782,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.8032898986957633,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669432",
"player_name": "Trevor Rogers",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 133,
"wins": 65,
"losses": 68,
"win_pct": 0.4887,
"runs_scored": 604.0,
"runs_allowed": 626.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1654,
"avg_runs_scored": 4.5414,
"avg_runs_allowed": 4.7068,
"offense_index": 1.0122,
"defense_index": 0.9532,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.9,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0299
},
"opponent": {
"team": "STL",
"games": 134,
"wins": 66,
"losses": 68,
"win_pct": 0.4925,
"runs_scored": 593.0,
"runs_allowed": 608.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1119,
"avg_runs_scored": 4.4254,
"avg_runs_allowed": 4.5373,
"offense_index": 0.9864,
"defense_index": 0.9888,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 6.7,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0901
},
"edges": {
"quality_edge": 0.0602,
"offense_edge": 0.0122,
"opponent_offense_edge": -0.0136,
"defense_strength": -0.0468,
"opponent_defense_weakness": 0.0112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0015,
"run_prevention": 0.9995,
"strikeout": 1.0029
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669432",
"profile": {
"available": true,
"pitcher_id": "669432",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 20.5,
"bb_percent": 6.5,
"woba": 0.306,
"xwoba": 0.304,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 38.5,
"avg_best_speed": 78.0335,
"avg_hyper_speed": 93.985,
"whiff_percent": 23.7,
"swing_percent": 52.5
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.1231,
"command_and_miss": -0.0364,
"regression_edge": 0.0571,
"xwoba_edge": 0.2,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.1,
"whiff_edge": -0.2143,
"bb_edge": 0.675,
"pitch_design_score": -0.0373
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.18055651401573,
"release_spin_rate": 2193.8218174875824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.18055651401573,
"release_spin_rate": 2193.8218174875824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.1806,
"release_spin_rate": 2193.8218,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0373,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2667,
"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.0622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9829,
"walk_factor": 0.946,
"homer_factor": 0.9962,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669432",
"espn_id": 39640,
"player_name": "Trevor Rogers",
"team": "BAL",
"role": "pitcher",
"espn_rank": 108,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 108,
"gp_value": 24.0,
"gp_rank": 302,
"gs_value": 24.0,
"gs_rank": 52,
"qs_value": 12.0,
"qs_rank": 27,
"era_value": 4.1381,
"era_rank": null,
"w_value": 9.0,
"w_rank": 30,
"l_value": 8.0,
"l_rank": 40,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 132.2,
"ip_rank": 55,
"h_value": 128.0,
"h_rank": 38,
"er_value": 61.0,
"er_rank": 46,
"hr_value": 14.0,
"hr_rank": 88,
"bb_value": 36.0,
"bb_rank": 92,
"k_value": 114.0,
"k_rank": 67,
"k_per_9_value": 7.7336683,
"k_per_9_rank": 32.0,
"whip_value": 1.2361,
"whip_rank": null,
"war_value": 1.51,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9947,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9947,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9962,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9829,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260827_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_BAL@STL | home | Gordon Graceffo | Gordon Graceffo | True | 5.0 | 3.0 | -6 | 2 | 0 | -2 | 2/0 | 3/0 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.126315789473684,
"WHIP": 1.1210526315789473,
"IP": 63.1,
"games_started": null,
"games_pitched": 52,
"role_avg_IP": 1.218,
"recent_avg_IP": 1.067,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.702,
"sample_weight": 0.992,
"run_prevention_factor": 1.0597,
"strikeout_factor": 0.9167,
"walk_factor": 1.0536,
"homer_factor": 1.1179,
"regression_flag": "negative_pitcher_regression",
"k_percent": 15.0,
"bb_percent": 11.9,
"woba": 0.27,
"xwoba": 0.343,
"barrel_percent": 9.8,
"hard_hit_percent": 45.4,
"whiff_percent": 17.5
},
"espn_rank": {
"rank": 176,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 63.1,
"season_ERA": 3.126,
"season_WHIP": 1.121,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.717,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7178,
"prior_weight": 0.2822
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700669",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 52,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 3.0,
"SO": 2.0,
"HR": 0.0,
"BF": 22.0,
"Pitches": 72.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.6,
"BB": 0.6,
"SO": 0.4,
"HR": 0.0,
"BF": 4.4,
"Pitches": 14.4
},
"rates": {
"ERA": 1.6875,
"WHIP": 1.125,
"ER_per_IP": 0.1875,
"H_per_IP": 0.5625,
"BB_per_IP": 0.5625,
"SO_per_IP": 0.375,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 14.0,
"ER": 4.0,
"R": 4.0,
"H": 8.0,
"BB": 8.0,
"SO": 10.0,
"HR": 0.0,
"BF": 56.0,
"Pitches": 213.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.4,
"H": 0.8,
"BB": 0.8,
"SO": 1.0,
"HR": 0.0,
"BF": 5.6,
"Pitches": 21.3
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.1429,
"ER_per_IP": 0.28571,
"H_per_IP": 0.57143,
"BB_per_IP": 0.57143,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.0
}
},
"season": {
"games": 52,
"totals": {
"IP": 63.1,
"ER": 22.0,
"R": 24.0,
"H": 41.0,
"BB": 30.0,
"SO": 38.0,
"HR": 5.0,
"BF": 253.0,
"Pitches": 937.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4231,
"R": 0.4615,
"H": 0.7885,
"BB": 0.5769,
"SO": 0.7308,
"HR": 0.0962,
"BF": 4.8654,
"Pitches": 18.0192
},
"rates": {
"ERA": 3.1263,
"WHIP": 1.1211,
"ER_per_IP": 0.34737,
"H_per_IP": 0.64737,
"BB_per_IP": 0.47368,
"SO_per_IP": 0.6,
"HR_per_IP": 0.07895
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.793,
"predicted_H": 1.699,
"predicted_BB": 1.218,
"predicted_SO": 1.598,
"predicted_HR": 0.129,
"predicted_ERA": 2.9161,
"predicted_WHIP": 1.1913
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4692,
"form_weight": 0.5308,
"form_reliability": 0.7178,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.717,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7178,
"prior_weight": 0.2822
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 0.793,
"final": 2.2978,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 1.699,
"final": 2.7787,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.218,
"final": 2.0542,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 1.598,
"final": 4.1328,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.129,
"final": 1.0069,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9161,
"final": 2.9161,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1913,
"final": 1.1913,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 14.0,
"ER": 4,
"H": 8,
"BB": 8,
"SO": 10,
"HR": 0,
"ERA": 2.5714285714285716,
"WHIP": 1.1428571428571428,
"K9": 6.428571428571429,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.903274613601831,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.717,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7178,
"prior_weight": 0.2822
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 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_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700669",
"player_name": "Gordon Graceffo",
"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": 4.0,
"predicted_H": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.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": 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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.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": 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": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"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.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": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"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": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 134,
"wins": 66,
"losses": 68,
"win_pct": 0.4925,
"runs_scored": 593.0,
"runs_allowed": 608.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1119,
"avg_runs_scored": 4.4254,
"avg_runs_allowed": 4.5373,
"offense_index": 0.9864,
"defense_index": 0.9888,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 6.7,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0901
},
"opponent": {
"team": "BAL",
"games": 133,
"wins": 65,
"losses": 68,
"win_pct": 0.4887,
"runs_scored": 604.0,
"runs_allowed": 626.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1654,
"avg_runs_scored": 4.5414,
"avg_runs_allowed": 4.7068,
"offense_index": 1.0122,
"defense_index": 0.9532,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.9,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0299
},
"edges": {
"quality_edge": -0.0602,
"offense_edge": -0.0136,
"opponent_offense_edge": 0.0122,
"defense_strength": -0.0112,
"opponent_defense_weakness": 0.0468,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 1.0061,
"strikeout": 0.9972
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700669",
"profile": {
"available": true,
"pitcher_id": "700669",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 248.0,
"k_percent": 15.0,
"bb_percent": 11.9,
"woba": 0.27,
"xwoba": 0.343,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 45.4,
"avg_best_speed": 82.1984,
"avg_hyper_speed": 95.1245,
"whiff_percent": 17.5,
"swing_percent": 44.6
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4645,
"command_and_miss": -0.97,
"regression_edge": -2.0,
"xwoba_edge": -0.9143,
"barrel_edge": -0.6,
"hard_hit_edge": -1.0857,
"whiff_edge": -1.1,
"bb_edge": -0.675,
"pitch_design_score": 0.0584
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700669",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.89048731269584,
"release_spin_rate": 2145.370306715925,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 90.89048731269584,
"release_spin_rate": 2145.370306715925,
"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.8905,
"release_spin_rate": 2145.3703,
"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.0584,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4173,
"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.702,
"sample_weight": 0.992,
"run_prevention_factor": 1.0597,
"strikeout_factor": 0.9167,
"walk_factor": 1.0536,
"homer_factor": 1.1179,
"woba_minus_xwoba": -0.073,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700669",
"espn_id": 5123582,
"player_name": "Gordon Graceffo",
"team": "STL",
"role": "pitcher",
"espn_rank": 176,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 176,
"gp_value": 52.0,
"gp_rank": 67,
"gs_value": 0.0,
"gs_rank": 348,
"qs_value": 0.0,
"qs_rank": 205,
"era_value": 3.1263,
"era_rank": null,
"w_value": 7.0,
"w_rank": 73,
"l_value": 1.0,
"l_rank": 404,
"sv_value": 1.0,
"sv_rank": 130,
"hld_value": 6.0,
"hld_rank": 137,
"ip_value": 63.1,
"ip_rank": 190,
"h_value": 41.0,
"h_rank": 289,
"er_value": 22.0,
"er_rank": 262,
"hr_value": 5.0,
"hr_rank": 291,
"bb_value": 30.0,
"bb_rank": 141,
"k_value": 38.0,
"k_rank": 341,
"k_per_9_value": 5.4,
"k_per_9_rank": 48.0,
"whip_value": 1.121,
"whip_rank": null,
"war_value": 0.96,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0592,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0592,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0532,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.117,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9174,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"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": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260827_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_COL@WAS | away | Gabriel Hughes | Gabriel Hughes | True | 4.1 | 5.0 | 2 | 4 | 4 | 0 | 6/7 | 2/4 | 3/3 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 6.5390625,
"WHIP": 1.359375,
"IP": 42.2,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 4.958,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1051,
"sample_weight": 0.648,
"run_prevention_factor": 0.9911,
"strikeout_factor": 0.9648,
"walk_factor": 0.9857,
"homer_factor": 0.9293,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.9,
"bb_percent": 8.1,
"woba": 0.324,
"xwoba": 0.289,
"barrel_percent": 4.5,
"hard_hit_percent": 30.1,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 572,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687312",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 25.0,
"R": 25.0,
"H": 27.0,
"BB": 9.0,
"SO": 16.0,
"HR": 4.0,
"BF": 108.0,
"Pitches": 408.0
},
"per_game": {
"IP": 4.2,
"ER": 5.0,
"R": 5.0,
"H": 5.4,
"BB": 1.8,
"SO": 3.2,
"HR": 0.8,
"BF": 21.6,
"Pitches": 81.6
},
"rates": {
"ERA": 9.6429,
"WHIP": 1.5429,
"ER_per_IP": 1.07143,
"H_per_IP": 1.15714,
"BB_per_IP": 0.38571,
"SO_per_IP": 0.68571,
"HR_per_IP": 0.17143
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 42.2,
"ER": 31.0,
"R": 31.0,
"H": 43.0,
"BB": 15.0,
"SO": 35.0,
"HR": 4.0,
"BF": 185.0,
"Pitches": 725.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4444,
"R": 3.4444,
"H": 4.7778,
"BB": 1.6667,
"SO": 3.8889,
"HR": 0.4444,
"BF": 20.5556,
"Pitches": 80.5556
},
"rates": {
"ERA": 6.5391,
"WHIP": 1.3594,
"ER_per_IP": 0.72656,
"H_per_IP": 1.00781,
"BB_per_IP": 0.35156,
"SO_per_IP": 0.82031,
"HR_per_IP": 0.09375
}
},
"season": {
"games": 9,
"totals": {
"IP": 42.2,
"ER": 31.0,
"R": 31.0,
"H": 43.0,
"BB": 15.0,
"SO": 35.0,
"HR": 4.0,
"BF": 185.0,
"Pitches": 725.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4444,
"R": 3.4444,
"H": 4.7778,
"BB": 1.6667,
"SO": 3.8889,
"HR": 0.4444,
"BF": 20.5556,
"Pitches": 80.5556
},
"rates": {
"ERA": 6.5391,
"WHIP": 1.3594,
"ER_per_IP": 0.72656,
"H_per_IP": 1.00781,
"BB_per_IP": 0.35156,
"SO_per_IP": 0.82031,
"HR_per_IP": 0.09375
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.655,
"predicted_H": 4.928,
"predicted_BB": 1.733,
"predicted_SO": 3.783,
"predicted_HR": 0.67,
"predicted_ERA": 7.049,
"predicted_WHIP": 1.4273
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.655,
"final": 3.8278,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.928,
"final": 5.4649,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.733,
"final": 1.8667,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.783,
"final": 3.3908,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.67,
"final": 0.8353,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.049,
"final": 7.049,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4273,
"final": 1.4273,
"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": 42.2,
"ER": 31,
"H": 43,
"BB": 15,
"SO": 35,
"HR": 4,
"ERA": 6.5390625,
"WHIP": 1.359375,
"K9": 7.3828125,
"HR9": 0.84375,
"games_pitched": 9,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-22T00:00:00"
},
"recent_form_boost": 1.2402372406999531,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687312",
"player_name": "Gabriel Hughes",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 636.0,
"runs_allowed": 768.0,
"run_differential": -132.0,
"run_differential_per_game": -0.9925,
"avg_runs_scored": 4.782,
"avg_runs_allowed": 5.7744,
"offense_index": 1.0659,
"defense_index": 0.777,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 6.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.2843
},
"opponent": {
"team": "WAS",
"games": 135,
"wins": 62,
"losses": 73,
"win_pct": 0.4593,
"runs_scored": 697.0,
"runs_allowed": 691.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0444,
"avg_runs_scored": 5.163,
"avg_runs_allowed": 5.1185,
"offense_index": 1.1508,
"defense_index": 0.8765,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.1342
},
"edges": {
"quality_edge": -0.1501,
"offense_edge": 0.0659,
"opponent_offense_edge": 0.1508,
"defense_strength": -0.223,
"opponent_defense_weakness": 0.1235,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9813,
"run_prevention": 1.0539,
"strikeout": 0.9834
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687312",
"profile": {
"available": true,
"pitcher_id": "687312",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 162.0,
"k_percent": 18.9,
"bb_percent": 8.1,
"woba": 0.324,
"xwoba": 0.289,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 30.1,
"avg_best_speed": 79.3812,
"avg_hyper_speed": 92.7374,
"whiff_percent": 18.8,
"swing_percent": 47.0
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3312,
"command_and_miss": -0.4643,
"regression_edge": 1.0,
"xwoba_edge": 0.6286,
"barrel_edge": 0.5778,
"hard_hit_edge": 1.1,
"whiff_edge": -0.9143,
"bb_edge": 0.275,
"pitch_design_score": -0.0314
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687312",
"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": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.28619381193431,
"release_spin_rate": 2171.9113714304062,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.2862,
"release_spin_rate": 2171.9114,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0314,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2245,
"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.1051,
"sample_weight": 0.648,
"run_prevention_factor": 0.9911,
"strikeout_factor": 0.9648,
"walk_factor": 0.9857,
"homer_factor": 0.9293,
"woba_minus_xwoba": 0.035,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "687312",
"espn_id": 4634930,
"player_name": "Gabriel Hughes",
"team": "COL",
"role": "pitcher",
"espn_rank": 572,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 572,
"gp_value": 9.0,
"gp_rank": 518,
"gs_value": 8.0,
"gs_rank": 178,
"qs_value": 1.0,
"qs_rank": 174,
"era_value": 6.539,
"era_rank": null,
"w_value": 0.0,
"w_rank": 509,
"l_value": 5.0,
"l_rank": 125,
"sv_value": 1.0,
"sv_rank": 130,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 42.2,
"ip_rank": 326,
"h_value": 43.0,
"h_rank": 269,
"er_value": 31.0,
"er_rank": 173,
"hr_value": 4.0,
"hr_rank": 350,
"bb_value": 15.0,
"bb_rank": 357,
"k_value": 35.0,
"k_rank": 361,
"k_per_9_value": 7.3828125,
"k_per_9_rank": 29.0,
"whip_value": 1.3593,
"whip_rank": null,
"war_value": -0.09,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9942,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 0.9942,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9907,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9542,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9772,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260827_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_COL@WAS | home | Jake Irvin | Jake Irvin | True | 4.2 | 4.1 | -1 | 3 | 1 | -2 | 4/3 | 2/6 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.81896551724138,
"WHIP": 1.3577586206896552,
"IP": 77.1,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.833,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5548,
"sample_weight": 1.0,
"run_prevention_factor": 1.0472,
"strikeout_factor": 0.9914,
"walk_factor": 1.01,
"homer_factor": 1.1589,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 9.7,
"woba": 0.337,
"xwoba": 0.353,
"barrel_percent": 11.7,
"hard_hit_percent": 45.0,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 752,
"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": "663623",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 20.0,
"R": 20.0,
"H": 24.0,
"BB": 11.0,
"SO": 18.0,
"HR": 7.0,
"BF": 111.0,
"Pitches": 434.0
},
"per_game": {
"IP": 5.0,
"ER": 4.0,
"R": 4.0,
"H": 4.8,
"BB": 2.2,
"SO": 3.6,
"HR": 1.4,
"BF": 22.2,
"Pitches": 86.8
},
"rates": {
"ERA": 7.013,
"WHIP": 1.3636,
"ER_per_IP": 0.77922,
"H_per_IP": 0.93506,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.7013,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 34.0,
"R": 37.0,
"H": 48.0,
"BB": 22.0,
"SO": 42.0,
"HR": 10.0,
"BF": 210.0,
"Pitches": 864.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 3.7,
"H": 4.8,
"BB": 2.2,
"SO": 4.2,
"HR": 1.0,
"BF": 21.0,
"Pitches": 86.4
},
"rates": {
"ERA": 6.4196,
"WHIP": 1.4685,
"ER_per_IP": 0.71329,
"H_per_IP": 1.00699,
"BB_per_IP": 0.46154,
"SO_per_IP": 0.88112,
"HR_per_IP": 0.20979
}
},
"season": {
"games": 16,
"totals": {
"IP": 77.1,
"ER": 50.0,
"R": 54.0,
"H": 72.0,
"BB": 33.0,
"SO": 76.0,
"HR": 14.0,
"BF": 339.0,
"Pitches": 1383.0
},
"per_game": {
"IP": 4.2,
"ER": 3.125,
"R": 3.375,
"H": 4.5,
"BB": 2.0625,
"SO": 4.75,
"HR": 0.875,
"BF": 21.1875,
"Pitches": 86.4375
},
"rates": {
"ERA": 5.819,
"WHIP": 1.3578,
"ER_per_IP": 0.64655,
"H_per_IP": 0.93103,
"BB_per_IP": 0.42672,
"SO_per_IP": 0.98276,
"HR_per_IP": 0.18103
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.283,
"predicted_H": 4.683,
"predicted_BB": 2.056,
"predicted_SO": 4.129,
"predicted_HR": 1.03,
"predicted_ERA": 6.0798,
"predicted_WHIP": 1.3865
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.283,
"final": 2.7049,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.683,
"final": 3.0235,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.056,
"final": 2.0308,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.129,
"final": 3.1697,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.03,
"final": 1.0165,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0798,
"final": 6.0798,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3865,
"final": 1.3865,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 34,
"H": 48,
"BB": 22,
"SO": 42,
"HR": 10,
"ERA": 6.41958041958042,
"WHIP": 1.4685314685314685,
"K9": 7.930069930069931,
"HR9": 1.8881118881118881,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-22T00:00:00"
},
"recent_form_boost": 1.2295244183660372,
"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": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663623",
"player_name": "Jake Irvin",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.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": "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": 1.0,
"predicted_HR": 1.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": "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": 1.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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2.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_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.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": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "worse",
"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": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 135,
"wins": 62,
"losses": 73,
"win_pct": 0.4593,
"runs_scored": 697.0,
"runs_allowed": 691.0,
"run_differential": 6.0,
"run_differential_per_game": 0.0444,
"avg_runs_scored": 5.163,
"avg_runs_allowed": 5.1185,
"offense_index": 1.1508,
"defense_index": 0.8765,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 4.3,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.1342
},
"opponent": {
"team": "COL",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 636.0,
"runs_allowed": 768.0,
"run_differential": -132.0,
"run_differential_per_game": -0.9925,
"avg_runs_scored": 4.782,
"avg_runs_allowed": 5.7744,
"offense_index": 1.0659,
"defense_index": 0.777,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 6.6,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.2843
},
"edges": {
"quality_edge": 0.1501,
"offense_edge": 0.1508,
"opponent_offense_edge": 0.0659,
"defense_strength": -0.1235,
"opponent_defense_weakness": 0.223,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9997,
"run_prevention": 1.0154,
"strikeout": 0.9992
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663623",
"profile": {
"available": true,
"pitcher_id": "663623",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 313.0,
"k_percent": 22.4,
"bb_percent": 9.7,
"woba": 0.337,
"xwoba": 0.353,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 11.7,
"hard_hit_percent": 45.0,
"avg_best_speed": 77.3962,
"avg_hyper_speed": 94.7037,
"whiff_percent": 23.3,
"swing_percent": 46.8
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.8445,
"command_and_miss": -0.0943,
"regression_edge": -0.4571,
"xwoba_edge": -1.2,
"barrel_edge": -1.0222,
"hard_hit_edge": -1.0286,
"whiff_edge": -0.2714,
"bb_edge": -0.125,
"pitch_design_score": -0.1455
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663623",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.249,
"release_spin_rate": 2375.9583,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1455,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0394,
"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.5548,
"sample_weight": 1.0,
"run_prevention_factor": 1.0472,
"strikeout_factor": 0.9914,
"walk_factor": 1.01,
"homer_factor": 1.1589,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663623",
"espn_id": 41290,
"player_name": "Jake Irvin",
"team": "WSH",
"role": "pitcher",
"espn_rank": 752,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 752,
"gp_value": 16.0,
"gp_rank": 421,
"gs_value": 16.0,
"gs_rank": 118,
"qs_value": 0.0,
"qs_rank": 205,
"era_value": 5.8189,
"era_rank": null,
"w_value": 2.0,
"w_rank": 294,
"l_value": 8.0,
"l_rank": 40,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 77.1,
"ip_rank": 151,
"h_value": 72.0,
"h_rank": 151,
"er_value": 50.0,
"er_rank": 85,
"hr_value": 14.0,
"hr_rank": 88,
"bb_value": 33.0,
"bb_rank": 121,
"k_value": 76.0,
"k_rank": 142,
"k_per_9_value": 8.844828,
"k_per_9_rank": 25.0,
"whip_value": 1.3577,
"whip_rank": null,
"war_value": -0.5,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0472,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0472,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.01,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1589,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9914,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260827_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_HOU@NYY | away | Hayden Wesneski | Hayden Wesneski | True | 5.1 | 5.0 | -1 | 2 | 1 | -1 | 4/3 | 1/2 | 4/6 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 4.228915662650603,
"WHIP": 1.2289156626506024,
"IP": 27.2,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 5.533,
"recent_avg_IP": 5.533,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0108,
"sample_weight": 0.45,
"run_prevention_factor": 0.9991,
"strikeout_factor": 0.9992,
"walk_factor": 0.9964,
"homer_factor": 0.9973,
"regression_flag": "neutral",
"k_percent": 19.5,
"bb_percent": 8.8,
"woba": 0.306,
"xwoba": 0.306,
"barrel_percent": 6.3,
"hard_hit_percent": 40.0,
"whiff_percent": 27.4
},
"espn_rank": {
"rank": 292,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 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": "669713",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 22.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 4.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 82.4
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.2289,
"ER_per_IP": 0.46988,
"H_per_IP": 0.86747,
"BB_per_IP": 0.36145,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 22.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 4.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 82.4
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.2289,
"ER_per_IP": 0.46988,
"H_per_IP": 0.86747,
"BB_per_IP": 0.36145,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.07229
}
},
"season": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 10.0,
"SO": 22.0,
"HR": 2.0,
"BF": 113.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 2.0,
"SO": 4.4,
"HR": 0.4,
"BF": 22.6,
"Pitches": 82.4
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.2289,
"ER_per_IP": 0.46988,
"H_per_IP": 0.86747,
"BB_per_IP": 0.36145,
"SO_per_IP": 0.79518,
"HR_per_IP": 0.07229
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.674,
"predicted_H": 5.072,
"predicted_BB": 2.009,
"predicted_SO": 4.779,
"predicted_HR": 0.603,
"predicted_ERA": 4.3757,
"predicted_WHIP": 1.2875
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5613,
"form_weight": 0.4388,
"form_reliability": 0.5,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.674,
"final": 2.2957,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.072,
"final": 4.4703,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.009,
"final": 1.4427,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.779,
"final": 4.3418,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.603,
"final": 0.8258,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3757,
"final": 4.3757,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2875,
"final": 1.2875,
"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": 27.2,
"ER": 13,
"H": 24,
"BB": 10,
"SO": 22,
"HR": 2,
"ERA": 4.228915662650603,
"WHIP": 1.2289156626506024,
"K9": 7.156626506024096,
"HR9": 0.6506024096385542,
"games_pitched": 5,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9792927549841715,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5,
"prior_weight": 0.5
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669713",
"player_name": "Hayden Wesneski",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 608.0,
"runs_allowed": 656.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3609,
"avg_runs_scored": 4.5714,
"avg_runs_allowed": 4.9323,
"offense_index": 1.0198,
"defense_index": 0.9088,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 6.3,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.1175
},
"opponent": {
"team": "NYY",
"games": 132,
"wins": 75,
"losses": 57,
"win_pct": 0.5682,
"runs_scored": 595.0,
"runs_allowed": 491.0,
"run_differential": 104.0,
"run_differential_per_game": 0.7879,
"avg_runs_scored": 4.5076,
"avg_runs_allowed": 3.7197,
"offense_index": 1.0056,
"defense_index": 1.2051,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.2246
},
"edges": {
"quality_edge": -0.3421,
"offense_edge": 0.0198,
"opponent_offense_edge": 0.0056,
"defense_strength": -0.0912,
"opponent_defense_weakness": -0.2051,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9834,
"run_prevention": 1.0271,
"strikeout": 0.9893
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669713",
"profile": {
"available": true,
"pitcher_id": "669713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 94.0,
"k_percent": 19.5,
"bb_percent": 8.8,
"woba": 0.306,
"xwoba": 0.306,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 40.0,
"avg_best_speed": 78.6543,
"avg_hyper_speed": 94.2732,
"whiff_percent": 27.4,
"swing_percent": 50.5
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0707,
"command_and_miss": -0.0307,
"regression_edge": 0.0,
"xwoba_edge": 0.1429,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.3143,
"whiff_edge": 0.3143,
"bb_edge": 0.1,
"pitch_design_score": -0.095
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 88.15057794740576,
"release_spin_rate": 2328.6168589392373,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 88.1506,
"release_spin_rate": 2328.6169,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.095,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6787,
"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.0108,
"sample_weight": 0.45,
"run_prevention_factor": 0.9991,
"strikeout_factor": 0.9992,
"walk_factor": 0.9964,
"homer_factor": 0.9973,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669713",
"espn_id": 42996,
"player_name": "Hayden Wesneski",
"team": "HOU",
"role": "pitcher",
"espn_rank": 292,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 292,
"gp_value": 5.0,
"gp_rank": 600,
"gs_value": 5.0,
"gs_rank": 209,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 4.2289,
"era_rank": null,
"w_value": 3.0,
"w_rank": 227,
"l_value": 1.0,
"l_rank": 404,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 27.2,
"ip_rank": 432,
"h_value": 24.0,
"h_rank": 448,
"er_value": 13.0,
"er_rank": 425,
"hr_value": 2.0,
"hr_rank": 489,
"bb_value": 10.0,
"bb_rank": 457,
"k_value": 22.0,
"k_rank": 446,
"k_per_9_value": 7.1566267,
"k_per_9_rank": 27.0,
"whip_value": 1.2289,
"whip_rank": null,
"war_value": 0.33,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9996,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9996,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9984,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9988,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9996,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"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 -1."
}
],
"provenance": {
"prediction": "output/games/20260827_HOU@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"
}
} |
| 20260827 | 20260827_HOU@NYY | home | Gerrit Cole | Gerrit Cole | True | 6.0 | 6.0 | 0 | 0 | 3 | 3 | 4/6 | 1/1 | 9/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.107913669064748,
"WHIP": 1.0683453237410072,
"IP": 92.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.792,
"recent_avg_IP": 6.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2635,
"sample_weight": 1.0,
"run_prevention_factor": 0.9776,
"strikeout_factor": 1.0091,
"walk_factor": 0.922,
"homer_factor": 1.0186,
"regression_flag": "neutral",
"k_percent": 26.6,
"bb_percent": 5.3,
"woba": 0.285,
"xwoba": 0.282,
"barrel_percent": 8.1,
"hard_hit_percent": 42.3,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 44,
"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": "543037",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 5.0,
"R": 6.0,
"H": 23.0,
"BB": 8.0,
"SO": 34.0,
"HR": 1.0,
"BF": 121.0,
"Pitches": 460.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.2,
"H": 4.6,
"BB": 1.6,
"SO": 6.8,
"HR": 0.2,
"BF": 24.2,
"Pitches": 92.0
},
"rates": {
"ERA": 1.4674,
"WHIP": 1.0109,
"ER_per_IP": 0.16304,
"H_per_IP": 0.75,
"BB_per_IP": 0.26087,
"SO_per_IP": 1.1087,
"HR_per_IP": 0.03261
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 19.0,
"R": 20.0,
"H": 50.0,
"BB": 11.0,
"SO": 71.0,
"HR": 7.0,
"BF": 240.0,
"Pitches": 930.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.0,
"H": 5.0,
"BB": 1.1,
"SO": 7.1,
"HR": 0.7,
"BF": 24.0,
"Pitches": 93.0
},
"rates": {
"ERA": 2.8343,
"WHIP": 1.011,
"ER_per_IP": 0.31492,
"H_per_IP": 0.82873,
"BB_per_IP": 0.18232,
"SO_per_IP": 1.1768,
"HR_per_IP": 0.11602
}
},
"season": {
"games": 16,
"totals": {
"IP": 92.2,
"ER": 32.0,
"R": 33.0,
"H": 79.0,
"BB": 20.0,
"SO": 100.0,
"HR": 12.0,
"BF": 376.0,
"Pitches": 1426.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0625,
"H": 4.9375,
"BB": 1.25,
"SO": 6.25,
"HR": 0.75,
"BF": 23.5,
"Pitches": 89.125
},
"rates": {
"ERA": 3.1079,
"WHIP": 1.0683,
"ER_per_IP": 0.34532,
"H_per_IP": 0.85252,
"BB_per_IP": 0.21583,
"SO_per_IP": 1.07914,
"HR_per_IP": 0.1295
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.857,
"predicted_H": 5.001,
"predicted_BB": 1.54,
"predicted_SO": 6.442,
"predicted_HR": 0.576,
"predicted_ERA": 2.8093,
"predicted_WHIP": 1.0995
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.857,
"final": 1.0202,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.001,
"final": 4.55,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.54,
"final": 1.2967,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 6.442,
"final": 7.5946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.576,
"final": 0.3165,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8093,
"final": 2.8093,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0995,
"final": 1.0995,
"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": 19,
"H": 50,
"BB": 11,
"SO": 71,
"HR": 7,
"ERA": 2.8342541436464086,
"WHIP": 1.011049723756906,
"K9": 10.591160220994475,
"HR9": 1.0441988950276242,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.8147381687040969,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 132,
"wins": 75,
"losses": 57,
"win_pct": 0.5682,
"runs_scored": 595.0,
"runs_allowed": 491.0,
"run_differential": 104.0,
"run_differential_per_game": 0.7879,
"avg_runs_scored": 4.5076,
"avg_runs_allowed": 3.7197,
"offense_index": 1.0056,
"defense_index": 1.2051,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.2246
},
"opponent": {
"team": "HOU",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 608.0,
"runs_allowed": 656.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3609,
"avg_runs_scored": 4.5714,
"avg_runs_allowed": 4.9323,
"offense_index": 1.0198,
"defense_index": 0.9088,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 6.3,
"run_differential": -24.0
},
"available": true,
"quality_score": -0.1175
},
"edges": {
"quality_edge": 0.3421,
"offense_edge": 0.0056,
"opponent_offense_edge": 0.0198,
"defense_strength": 0.2051,
"opponent_defense_weakness": 0.0912,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.019,
"run_prevention": 0.9656,
"strikeout": 1.0087
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 348.0,
"k_percent": 26.6,
"bb_percent": 5.3,
"woba": 0.285,
"xwoba": 0.282,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 42.3,
"avg_best_speed": 80.7584,
"avg_hyper_speed": 94.0837,
"whiff_percent": 22.2,
"swing_percent": 48.6
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.2792,
"command_and_miss": 0.3407,
"regression_edge": 0.0857,
"xwoba_edge": 0.8286,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.6429,
"whiff_edge": -0.4286,
"bb_edge": 0.975,
"pitch_design_score": 0.1252
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.0825980662545,
"release_spin_rate": 2363.5792056180953,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 92.0826,
"release_spin_rate": 2363.5792,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1252,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8941,
"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.2635,
"sample_weight": 1.0,
"run_prevention_factor": 0.9776,
"strikeout_factor": 1.0091,
"walk_factor": 0.922,
"homer_factor": 1.0186,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543037",
"espn_id": 32081,
"player_name": "Gerrit Cole",
"team": "NYY",
"role": "pitcher",
"espn_rank": 44,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 44,
"gp_value": 16.0,
"gp_rank": 421,
"gs_value": 16.0,
"gs_rank": 118,
"qs_value": 10.0,
"qs_rank": 50,
"era_value": 3.1079,
"era_rank": null,
"w_value": 7.0,
"w_rank": 73,
"l_value": 6.0,
"l_rank": 97,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 92.2,
"ip_rank": 123,
"h_value": 79.0,
"h_rank": 136,
"er_value": 32.0,
"er_rank": 166,
"hr_value": 12.0,
"hr_rank": 120,
"bb_value": 20.0,
"bb_rank": 264,
"k_value": 100.0,
"k_rank": 87,
"k_per_9_value": 9.712231,
"k_per_9_rank": 19.0,
"whip_value": 1.0683,
"whip_rank": null,
"war_value": 2.54,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9776,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9776,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.922,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0186,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0091,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"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."
}
],
"provenance": {
"prediction": "output/games/20260827_HOU@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"
}
} |
| 20260827 | 20260827_KC@TOR | away | Noah Cameron | Noah Cameron | True | 6.1 | 6.0 | -1 | 3 | 2 | -1 | 4/6 | 2/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.01860465116279,
"WHIP": 1.213953488372093,
"IP": 143.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.681,
"recent_avg_IP": 7.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0585,
"sample_weight": 1.0,
"run_prevention_factor": 1.005,
"strikeout_factor": 1.0017,
"walk_factor": 0.97,
"homer_factor": 1.0159,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 7.7,
"woba": 0.296,
"xwoba": 0.313,
"barrel_percent": 7.8,
"hard_hit_percent": 38.1,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 119,
"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": "702070",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 35.2,
"ER": 5.0,
"R": 5.0,
"H": 13.0,
"BB": 9.0,
"SO": 28.0,
"HR": 0.0,
"BF": 127.0,
"Pitches": 504.0
},
"per_game": {
"IP": 7.0,
"ER": 1.0,
"R": 1.0,
"H": 2.6,
"BB": 1.8,
"SO": 5.6,
"HR": 0.0,
"BF": 25.4,
"Pitches": 100.8
},
"rates": {
"ERA": 1.2617,
"WHIP": 0.6168,
"ER_per_IP": 0.14019,
"H_per_IP": 0.36449,
"BB_per_IP": 0.25234,
"SO_per_IP": 0.78505,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 24.0,
"R": 24.0,
"H": 44.0,
"BB": 24.0,
"SO": 53.0,
"HR": 6.0,
"BF": 251.0,
"Pitches": 982.0
},
"per_game": {
"IP": 6.1,
"ER": 2.4,
"R": 2.4,
"H": 4.4,
"BB": 2.4,
"SO": 5.3,
"HR": 0.6,
"BF": 25.1,
"Pitches": 98.2
},
"rates": {
"ERA": 3.4105,
"WHIP": 1.0737,
"ER_per_IP": 0.37895,
"H_per_IP": 0.69474,
"BB_per_IP": 0.37895,
"SO_per_IP": 0.83684,
"HR_per_IP": 0.09474
}
},
"season": {
"games": 25,
"totals": {
"IP": 143.1,
"ER": 64.0,
"R": 69.0,
"H": 128.0,
"BB": 46.0,
"SO": 128.0,
"HR": 14.0,
"BF": 600.0,
"Pitches": 2347.0
},
"per_game": {
"IP": 5.2,
"ER": 2.56,
"R": 2.76,
"H": 5.12,
"BB": 1.84,
"SO": 5.12,
"HR": 0.56,
"BF": 24.0,
"Pitches": 93.88
},
"rates": {
"ERA": 4.0186,
"WHIP": 1.214,
"ER_per_IP": 0.44651,
"H_per_IP": 0.89302,
"BB_per_IP": 0.32093,
"SO_per_IP": 0.89302,
"HR_per_IP": 0.09767
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.079,
"predicted_H": 4.213,
"predicted_BB": 2.072,
"predicted_SO": 5.465,
"predicted_HR": 0.443,
"predicted_ERA": 2.8914,
"predicted_WHIP": 0.9711
}
},
"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": 3.0,
"form": 2.079,
"final": 2.4662,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.213,
"final": 4.1234,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.072,
"final": 2.0417,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.465,
"final": 4.8491,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.443,
"final": 0.6772,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8914,
"final": 2.8914,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9711,
"final": 0.9711,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.1,
"ER": 24,
"H": 44,
"BB": 24,
"SO": 53,
"HR": 6,
"ERA": 3.4105263157894736,
"WHIP": 1.0736842105263158,
"K9": 7.531578947368421,
"HR9": 0.8526315789473684,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.8811346502394269,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702070",
"player_name": "Noah Cameron",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"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": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 134,
"wins": 59,
"losses": 75,
"win_pct": 0.4403,
"runs_scored": 565.0,
"runs_allowed": 657.0,
"run_differential": -92.0,
"run_differential_per_game": -0.6866,
"avg_runs_scored": 4.2164,
"avg_runs_allowed": 4.903,
"offense_index": 0.9406,
"defense_index": 0.9143,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.005
},
"opponent": {
"team": "TOR",
"games": 134,
"wins": 65,
"losses": 69,
"win_pct": 0.4851,
"runs_scored": 527.0,
"runs_allowed": 581.0,
"run_differential": -54.0,
"run_differential_per_game": -0.403,
"avg_runs_scored": 3.9328,
"avg_runs_allowed": 4.3358,
"offense_index": 0.8773,
"defense_index": 1.0339,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0621
},
"edges": {
"quality_edge": 0.0671,
"offense_edge": -0.0594,
"opponent_offense_edge": -0.1227,
"defense_strength": -0.0857,
"opponent_defense_weakness": -0.0339,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.005,
"run_prevention": 0.9856,
"strikeout": 1.0118
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702070",
"profile": {
"available": true,
"pitcher_id": "702070",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 575.0,
"k_percent": 21.3,
"bb_percent": 7.7,
"woba": 0.296,
"xwoba": 0.313,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 38.1,
"avg_best_speed": 78.1913,
"avg_hyper_speed": 94.0406,
"whiff_percent": 26.2,
"swing_percent": 47.7
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0303,
"command_and_miss": 0.08,
"regression_edge": -0.4857,
"xwoba_edge": -0.0571,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.0429,
"whiff_edge": 0.1429,
"bb_edge": 0.375,
"pitch_design_score": -0.1719
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702070",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 103,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.778,
"release_spin_rate": 2196.6732,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1719,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2277,
"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.0585,
"sample_weight": 1.0,
"run_prevention_factor": 1.005,
"strikeout_factor": 1.0017,
"walk_factor": 0.97,
"homer_factor": 1.0159,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702070",
"espn_id": 4417208,
"player_name": "Noah Cameron",
"team": "KC",
"role": "pitcher",
"espn_rank": 119,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 119,
"gp_value": 25.0,
"gp_rank": 279,
"gs_value": 24.0,
"gs_rank": 52,
"qs_value": 8.0,
"qs_rank": 70,
"era_value": 4.0186,
"era_rank": 39.0,
"w_value": 8.0,
"w_rank": 48,
"l_value": 8.0,
"l_rank": 40,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 143.1,
"ip_rank": 36,
"h_value": 128.0,
"h_rank": 38,
"er_value": 64.0,
"er_rank": 32,
"hr_value": 14.0,
"hr_rank": 88,
"bb_value": 46.0,
"bb_rank": 41,
"k_value": 128.0,
"k_rank": 43,
"k_per_9_value": 8.0372095,
"k_per_9_rank": 32.0,
"whip_value": 1.2139,
"whip_rank": 30.0,
"war_value": 1.42,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.005,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.005,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0159,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0017,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"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/20260827_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_KC@TOR | home | Spencer Arrighetti | Spencer Arrighetti | True | 4.2 | 4.0 | -2 | 3 | 3 | 0 | 5/5 | 1/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.7299270072992705,
"WHIP": 1.3467153284671534,
"IP": 91.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.176,
"recent_avg_IP": 3.8,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3648,
"sample_weight": 1.0,
"run_prevention_factor": 1.031,
"strikeout_factor": 1.0063,
"walk_factor": 1.076,
"homer_factor": 1.0104,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 13.0,
"woba": 0.322,
"xwoba": 0.345,
"barrel_percent": 8.2,
"hard_hit_percent": 31.1,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 240,
"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": "681293",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.1,
"ER": 16.0,
"R": 16.0,
"H": 15.0,
"BB": 15.0,
"SO": 16.0,
"HR": 4.0,
"BF": 89.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.0,
"ER": 3.2,
"R": 3.2,
"H": 3.0,
"BB": 3.0,
"SO": 3.2,
"HR": 0.8,
"BF": 17.8,
"Pitches": 69.2
},
"rates": {
"ERA": 7.4483,
"WHIP": 1.5517,
"ER_per_IP": 0.82759,
"H_per_IP": 0.77586,
"BB_per_IP": 0.77586,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.2069
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 41.0,
"R": 41.0,
"H": 44.0,
"BB": 26.0,
"SO": 48.0,
"HR": 11.0,
"BF": 203.0,
"Pitches": 808.0
},
"per_game": {
"IP": 4.1,
"ER": 4.1,
"R": 4.1,
"H": 4.4,
"BB": 2.6,
"SO": 4.8,
"HR": 1.1,
"BF": 20.3,
"Pitches": 80.8
},
"rates": {
"ERA": 8.3233,
"WHIP": 1.5789,
"ER_per_IP": 0.92481,
"H_per_IP": 0.99248,
"BB_per_IP": 0.58647,
"SO_per_IP": 1.08271,
"HR_per_IP": 0.24812
}
},
"season": {
"games": 18,
"totals": {
"IP": 91.1,
"ER": 48.0,
"R": 50.0,
"H": 71.0,
"BB": 52.0,
"SO": 91.0,
"HR": 13.0,
"BF": 401.0,
"Pitches": 1565.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6667,
"R": 2.7778,
"H": 3.9444,
"BB": 2.8889,
"SO": 5.0556,
"HR": 0.7222,
"BF": 22.2778,
"Pitches": 86.9444
},
"rates": {
"ERA": 4.7299,
"WHIP": 1.3467,
"ER_per_IP": 0.52555,
"H_per_IP": 0.77737,
"BB_per_IP": 0.56934,
"SO_per_IP": 0.99635,
"HR_per_IP": 0.14234
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.234,
"predicted_H": 3.862,
"predicted_BB": 2.65,
"predicted_SO": 4.168,
"predicted_HR": 0.857,
"predicted_ERA": 6.6264,
"predicted_WHIP": 1.4824
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.234,
"final": 3.1306,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.862,
"final": 4.3648,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.65,
"final": 1.9209,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.168,
"final": 4.9775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.857,
"final": 1.362,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.6264,
"final": 6.6264,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4824,
"final": 1.4824,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 41,
"H": 44,
"BB": 26,
"SO": 48,
"HR": 11,
"ERA": 8.32330827067669,
"WHIP": 1.5789473684210527,
"K9": 9.74436090225564,
"HR9": 2.233082706766917,
"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-08-21T00:00:00"
},
"recent_form_boost": 1.419131663575393,
"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": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.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": "681293",
"player_name": "Spencer Arrighetti",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.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": "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": 2.0,
"predicted_IP": 4.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": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 134,
"wins": 65,
"losses": 69,
"win_pct": 0.4851,
"runs_scored": 527.0,
"runs_allowed": 581.0,
"run_differential": -54.0,
"run_differential_per_game": -0.403,
"avg_runs_scored": 3.9328,
"avg_runs_allowed": 4.3358,
"offense_index": 0.8773,
"defense_index": 1.0339,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.7,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0621
},
"opponent": {
"team": "KC",
"games": 134,
"wins": 59,
"losses": 75,
"win_pct": 0.4403,
"runs_scored": 565.0,
"runs_allowed": 657.0,
"run_differential": -92.0,
"run_differential_per_game": -0.6866,
"avg_runs_scored": 4.2164,
"avg_runs_allowed": 4.903,
"offense_index": 0.9406,
"defense_index": 0.9143,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.005
},
"edges": {
"quality_edge": -0.0671,
"offense_edge": -0.1227,
"opponent_offense_edge": -0.0594,
"defense_strength": 0.0339,
"opponent_defense_weakness": 0.0857,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 1.0007,
"run_prevention": 0.9905,
"strikeout": 1.0027
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681293",
"profile": {
"available": true,
"pitcher_id": "681293",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 383.0,
"k_percent": 22.7,
"bb_percent": 13.0,
"woba": 0.322,
"xwoba": 0.345,
"sweet_spot_percent": 38.9,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 31.1,
"avg_best_speed": 77.124,
"avg_hyper_speed": 92.904,
"whiff_percent": 25.6,
"swing_percent": 42.0
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4361,
"command_and_miss": -0.125,
"regression_edge": -0.6571,
"xwoba_edge": -0.9714,
"barrel_edge": -0.2444,
"hard_hit_edge": 0.9571,
"whiff_edge": 0.0571,
"bb_edge": -0.95,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681293",
"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.44963252833853,
"release_spin_rate": 2497.7609751645673,
"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.44963252833853,
"release_spin_rate": 2497.7609751645673,
"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.4496,
"release_spin_rate": 2497.761,
"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.3648,
"sample_weight": 1.0,
"run_prevention_factor": 1.031,
"strikeout_factor": 1.0063,
"walk_factor": 1.076,
"homer_factor": 1.0104,
"woba_minus_xwoba": -0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681293",
"espn_id": 4726080,
"player_name": "Spencer Arrighetti",
"team": "TOR",
"role": "pitcher",
"espn_rank": 240,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 240,
"gp_value": 18.0,
"gp_rank": 390,
"gs_value": 17.0,
"gs_rank": 109,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.7299,
"era_rank": null,
"w_value": 7.0,
"w_rank": 73,
"l_value": 6.0,
"l_rank": 97,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 91.1,
"ip_rank": 128,
"h_value": 71.0,
"h_rank": 152,
"er_value": 48.0,
"er_rank": 97,
"hr_value": 13.0,
"hr_rank": 108,
"bb_value": 52.0,
"bb_rank": 19,
"k_value": 91.0,
"k_rank": 103,
"k_per_9_value": 8.967153,
"k_per_9_rank": 21.0,
"whip_value": 1.3467,
"whip_rank": null,
"war_value": 0.53,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.031,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 1.031,
"adjusted": 4
},
"predicted_BB": {
"original": 4.0,
"factor": 1.076,
"adjusted": 4
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0104,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"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/20260827_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_LAD@ATL | away | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 6.1 | 6.1 | 0 | 3 | 1 | -2 | 4/4 | 3/1 | 9/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.610989010989011,
"WHIP": 0.8967032967032967,
"IP": 151.2,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 6.594,
"recent_avg_IP": 6.4,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5479,
"sample_weight": 1.0,
"run_prevention_factor": 0.9534,
"strikeout_factor": 1.0229,
"walk_factor": 0.936,
"homer_factor": 0.9403,
"regression_flag": "neutral",
"k_percent": 24.9,
"bb_percent": 6.0,
"woba": 0.246,
"xwoba": 0.27,
"barrel_percent": 6.3,
"hard_hit_percent": 36.0,
"whiff_percent": 26.3
},
"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": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "808967",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 7.0,
"R": 7.0,
"H": 21.0,
"BB": 10.0,
"SO": 32.0,
"HR": 2.0,
"BF": 128.0,
"Pitches": 507.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 4.2,
"BB": 2.0,
"SO": 6.4,
"HR": 0.4,
"BF": 25.6,
"Pitches": 101.4
},
"rates": {
"ERA": 1.9688,
"WHIP": 0.9688,
"ER_per_IP": 0.21875,
"H_per_IP": 0.65625,
"BB_per_IP": 0.3125,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 66.0,
"ER": 20.0,
"R": 20.0,
"H": 44.0,
"BB": 20.0,
"SO": 65.0,
"HR": 5.0,
"BF": 260.0,
"Pitches": 1003.0
},
"per_game": {
"IP": 6.2,
"ER": 2.0,
"R": 2.0,
"H": 4.4,
"BB": 2.0,
"SO": 6.5,
"HR": 0.5,
"BF": 26.0,
"Pitches": 100.3
},
"rates": {
"ERA": 2.7273,
"WHIP": 0.9697,
"ER_per_IP": 0.30303,
"H_per_IP": 0.66667,
"BB_per_IP": 0.30303,
"SO_per_IP": 0.98485,
"HR_per_IP": 0.07576
}
},
"season": {
"games": 23,
"totals": {
"IP": 151.2,
"ER": 44.0,
"R": 45.0,
"H": 101.0,
"BB": 35.0,
"SO": 145.0,
"HR": 15.0,
"BF": 583.0,
"Pitches": 2267.0
},
"per_game": {
"IP": 6.2,
"ER": 1.913,
"R": 1.9565,
"H": 4.3913,
"BB": 1.5217,
"SO": 6.3043,
"HR": 0.6522,
"BF": 25.3478,
"Pitches": 98.5652
},
"rates": {
"ERA": 2.611,
"WHIP": 0.8967,
"ER_per_IP": 0.29011,
"H_per_IP": 0.66593,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.95604,
"HR_per_IP": 0.0989
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.98,
"predicted_H": 4.656,
"predicted_BB": 1.987,
"predicted_SO": 6.342,
"predicted_HR": 0.567,
"predicted_ERA": 2.7484,
"predicted_WHIP": 1.0246
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.98,
"final": 1.9885,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.656,
"final": 4.3769,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.987,
"final": 2.418,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.342,
"final": 5.771,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.567,
"final": 0.3258,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7484,
"final": 2.7484,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0246,
"final": 1.0246,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 66.0,
"ER": 20,
"H": 44,
"BB": 20,
"SO": 65,
"HR": 5,
"ERA": 2.727272727272727,
"WHIP": 0.9696969696969697,
"K9": 8.863636363636363,
"HR9": 0.6818181818181818,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.8016689405105593,
"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": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"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": 3,
"predicted_SO": 6,
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 2.0,
"predicted_SO": 9.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": 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": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 5.0,
"after": 9.0,
"delta": 4.0,
"percent_delta": 0.8,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 9.0,
"delta": 4.0,
"percent_delta": 0.8,
"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": 133,
"wins": 80,
"losses": 53,
"win_pct": 0.6015,
"runs_scored": 661.0,
"runs_allowed": 512.0,
"run_differential": 149.0,
"run_differential_per_game": 1.1203,
"avg_runs_scored": 4.9699,
"avg_runs_allowed": 3.8496,
"offense_index": 1.1087,
"defense_index": 1.1644,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2587
},
"opponent": {
"team": "ATL",
"games": 133,
"wins": 78,
"losses": 55,
"win_pct": 0.5865,
"runs_scored": 624.0,
"runs_allowed": 512.0,
"run_differential": 112.0,
"run_differential_per_game": 0.8421,
"avg_runs_scored": 4.6917,
"avg_runs_allowed": 3.8496,
"offense_index": 1.0466,
"defense_index": 1.1644,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.3,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1768
},
"edges": {
"quality_edge": 0.0819,
"offense_edge": 0.1087,
"opponent_offense_edge": 0.0466,
"defense_strength": 0.1644,
"opponent_defense_weakness": -0.1644,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9869,
"strikeout": 0.9987
},
"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": 24.9,
"bb_percent": 6.0,
"woba": 0.246,
"xwoba": 0.27,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 36.0,
"avg_best_speed": 76.1384,
"avg_hyper_speed": 93.7868,
"whiff_percent": 26.3,
"swing_percent": 48.8
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9044,
"command_and_miss": 0.4014,
"regression_edge": -0.6857,
"xwoba_edge": 1.1714,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.2571,
"whiff_edge": 0.1571,
"bb_edge": 0.8,
"pitch_design_score": 0.071
},
"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.071,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.507,
"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.5479,
"sample_weight": 1.0,
"run_prevention_factor": 0.9534,
"strikeout_factor": 1.0229,
"walk_factor": 0.936,
"homer_factor": 0.9403,
"woba_minus_xwoba": -0.024,
"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": 832,
"metrics": {
"espn_rank": 10,
"gp_value": 23.0,
"gp_rank": 318,
"gs_value": 23.0,
"gs_rank": 64,
"qs_value": 18.0,
"qs_rank": 2,
"era_value": 2.6109,
"era_rank": 7.0,
"w_value": 12.0,
"w_rank": 12,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 151.2,
"ip_rank": 13,
"h_value": 101.0,
"h_rank": 98,
"er_value": 44.0,
"er_rank": 117,
"hr_value": 15.0,
"hr_rank": 73,
"bb_value": 35.0,
"bb_rank": 104,
"k_value": 145.0,
"k_rank": 24,
"k_per_9_value": 8.604395,
"k_per_9_rank": 49.0,
"whip_value": 0.8967,
"whip_rank": 2.0,
"war_value": 4.42,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9534,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9534,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9403,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0229,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260827_LAD@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"
}
} |
| 20260827 | 20260827_LAD@ATL | home | Chris Sale | Chris Sale | True | 6.0 | 9.0 | 9 | 1 | 0 | -1 | 7/5 | 1/0 | 5/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.2,
"WHIP": 1.0296296296296297,
"IP": 135.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.87,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6674,
"sample_weight": 1.0,
"run_prevention_factor": 0.9433,
"strikeout_factor": 1.0771,
"walk_factor": 0.92,
"homer_factor": 0.9163,
"regression_flag": "neutral",
"k_percent": 30.6,
"bb_percent": 5.2,
"woba": 0.262,
"xwoba": 0.272,
"barrel_percent": 5.3,
"hard_hit_percent": 34.6,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 9,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "519242",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 9.0,
"R": 9.0,
"H": 25.0,
"BB": 3.0,
"SO": 43.0,
"HR": 0.0,
"BF": 116.0,
"Pitches": 497.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 5.0,
"BB": 0.6,
"SO": 8.6,
"HR": 0.0,
"BF": 23.2,
"Pitches": 99.4
},
"rates": {
"ERA": 2.7,
"WHIP": 0.9333,
"ER_per_IP": 0.3,
"H_per_IP": 0.83333,
"BB_per_IP": 0.1,
"SO_per_IP": 1.43333,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 13.0,
"R": 16.0,
"H": 49.0,
"BB": 8.0,
"SO": 74.0,
"HR": 2.0,
"BF": 223.0,
"Pitches": 922.0
},
"per_game": {
"IP": 5.2,
"ER": 1.3,
"R": 1.6,
"H": 4.9,
"BB": 0.8,
"SO": 7.4,
"HR": 0.2,
"BF": 22.3,
"Pitches": 92.2
},
"rates": {
"ERA": 2.0647,
"WHIP": 1.0059,
"ER_per_IP": 0.22941,
"H_per_IP": 0.86471,
"BB_per_IP": 0.14118,
"SO_per_IP": 1.30588,
"HR_per_IP": 0.03529
}
},
"season": {
"games": 23,
"totals": {
"IP": 135.0,
"ER": 33.0,
"R": 38.0,
"H": 111.0,
"BB": 28.0,
"SO": 166.0,
"HR": 8.0,
"BF": 542.0,
"Pitches": 2171.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4348,
"R": 1.6522,
"H": 4.8261,
"BB": 1.2174,
"SO": 7.2174,
"HR": 0.3478,
"BF": 23.5652,
"Pitches": 94.3913
},
"rates": {
"ERA": 2.2,
"WHIP": 1.0296,
"ER_per_IP": 0.24444,
"H_per_IP": 0.82222,
"BB_per_IP": 0.20741,
"SO_per_IP": 1.22963,
"HR_per_IP": 0.05926
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.811,
"predicted_H": 5.114,
"predicted_BB": 1.048,
"predicted_SO": 7.531,
"predicted_HR": 0.272,
"predicted_ERA": 2.7607,
"predicted_WHIP": 1.0437
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.811,
"final": 1.466,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.114,
"final": 5.9164,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.048,
"final": 1.0276,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.531,
"final": 6.0287,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.272,
"final": 0.1563,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7607,
"final": 2.7607,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0437,
"final": 1.0437,
"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.2,
"ER": 13,
"H": 49,
"BB": 8,
"SO": 74,
"HR": 2,
"ERA": 2.0647058823529414,
"WHIP": 1.0058823529411764,
"K9": 11.75294117647059,
"HR9": 0.31764705882352945,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.7280348050381885,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "519242",
"player_name": "Chris Sale",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.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": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": "ATL",
"games": 133,
"wins": 78,
"losses": 55,
"win_pct": 0.5865,
"runs_scored": 624.0,
"runs_allowed": 512.0,
"run_differential": 112.0,
"run_differential_per_game": 0.8421,
"avg_runs_scored": 4.6917,
"avg_runs_allowed": 3.8496,
"offense_index": 1.0466,
"defense_index": 1.1644,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.0,
"avg_runs_allowed": 3.3,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1768
},
"opponent": {
"team": "LAD",
"games": 133,
"wins": 80,
"losses": 53,
"win_pct": 0.6015,
"runs_scored": 661.0,
"runs_allowed": 512.0,
"run_differential": 149.0,
"run_differential_per_game": 1.1203,
"avg_runs_scored": 4.9699,
"avg_runs_allowed": 3.8496,
"offense_index": 1.1087,
"defense_index": 1.1644,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.2587
},
"edges": {
"quality_edge": -0.0819,
"offense_edge": 0.0466,
"opponent_offense_edge": 0.1087,
"defense_strength": 0.1644,
"opponent_defense_weakness": -0.1644,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9973,
"run_prevention": 1.005,
"strikeout": 0.9888
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "519242",
"profile": {
"available": true,
"pitcher_id": "519242",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 491.0,
"k_percent": 30.6,
"bb_percent": 5.2,
"woba": 0.262,
"xwoba": 0.272,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 34.6,
"avg_best_speed": 76.8741,
"avg_hyper_speed": 93.4634,
"whiff_percent": 30.1,
"swing_percent": 50.6
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.7889,
"command_and_miss": 0.9979,
"regression_edge": -0.2857,
"xwoba_edge": 1.1143,
"barrel_edge": 0.4,
"hard_hit_edge": 0.4571,
"whiff_edge": 0.7,
"bb_edge": 1.0,
"pitch_design_score": -0.0657
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 88.67399153905109,
"release_spin_rate": 2344.7057974290524,
"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": 98,
"pitch_usage": 0.0,
"release_speed": 88.67399153905109,
"release_spin_rate": 2344.7057974290524,
"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.674,
"release_spin_rate": 2344.7058,
"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.0657,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4693,
"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.6674,
"sample_weight": 1.0,
"run_prevention_factor": 0.9433,
"strikeout_factor": 1.0771,
"walk_factor": 0.92,
"homer_factor": 0.9163,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "519242",
"espn_id": 30948,
"player_name": "Chris Sale",
"team": "ATL",
"role": "pitcher",
"espn_rank": 9,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 9,
"gp_value": 23.0,
"gp_rank": 318,
"gs_value": 23.0,
"gs_rank": 64,
"qs_value": 16.0,
"qs_rank": 6,
"era_value": 2.2,
"era_rank": 3.0,
"w_value": 12.0,
"w_rank": 12,
"l_value": 9.0,
"l_rank": 20,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 135.0,
"ip_rank": 50,
"h_value": 111.0,
"h_rank": 82,
"er_value": 33.0,
"er_rank": 162,
"hr_value": 8.0,
"hr_rank": 191,
"bb_value": 28.0,
"bb_rank": 162,
"k_value": 166.0,
"k_rank": 12,
"k_per_9_value": 11.066667,
"k_per_9_rank": 6.0,
"whip_value": 1.0296,
"whip_rank": 8.0,
"war_value": 4.59,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9433,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9433,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9163,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0771,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 7,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 102,
"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/20260827_LAD@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"
}
} |
| 20260827 | 20260827_MIL@NYM | away | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 6.0 | 0 | 1 | 2 | 1 | 4/2 | 1/2 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.6758620689655173,
"WHIP": 0.7586206896551724,
"IP": 145.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 6.042,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.4262,
"sample_weight": 1.0,
"run_prevention_factor": 0.8788,
"strikeout_factor": 1.16,
"walk_factor": 0.936,
"homer_factor": 0.8383,
"regression_flag": "neutral",
"k_percent": 39.3,
"bb_percent": 6.0,
"woba": 0.212,
"xwoba": 0.219,
"barrel_percent": 3.8,
"hard_hit_percent": 32.9,
"whiff_percent": 37.9
},
"espn_rank": {
"rank": 4,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 7.0,
"H": 16.0,
"BB": 5.0,
"SO": 43.0,
"HR": 4.0,
"BF": 111.0,
"Pitches": 454.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.2,
"BB": 1.0,
"SO": 8.6,
"HR": 0.8,
"BF": 22.2,
"Pitches": 90.8
},
"rates": {
"ERA": 2.1,
"WHIP": 0.7,
"ER_per_IP": 0.23333,
"H_per_IP": 0.53333,
"BB_per_IP": 0.16667,
"SO_per_IP": 1.43333,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 14.0,
"R": 19.0,
"H": 35.0,
"BB": 11.0,
"SO": 85.0,
"HR": 9.0,
"BF": 221.0,
"Pitches": 902.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.9,
"H": 3.5,
"BB": 1.1,
"SO": 8.5,
"HR": 0.9,
"BF": 22.1,
"Pitches": 90.2
},
"rates": {
"ERA": 2.1724,
"WHIP": 0.7931,
"ER_per_IP": 0.24138,
"H_per_IP": 0.60345,
"BB_per_IP": 0.18966,
"SO_per_IP": 1.46552,
"HR_per_IP": 0.15517
}
},
"season": {
"games": 24,
"totals": {
"IP": 145.0,
"ER": 27.0,
"R": 35.0,
"H": 77.0,
"BB": 33.0,
"SO": 216.0,
"HR": 13.0,
"BF": 550.0,
"Pitches": 2179.0
},
"per_game": {
"IP": 6.0,
"ER": 1.125,
"R": 1.4583,
"H": 3.2083,
"BB": 1.375,
"SO": 9.0,
"HR": 0.5417,
"BF": 22.9167,
"Pitches": 90.7917
},
"rates": {
"ERA": 1.6759,
"WHIP": 0.7586,
"ER_per_IP": 0.18621,
"H_per_IP": 0.53103,
"BB_per_IP": 0.22759,
"SO_per_IP": 1.48966,
"HR_per_IP": 0.08966
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.619,
"predicted_H": 3.718,
"predicted_BB": 1.289,
"predicted_SO": 8.072,
"predicted_HR": 0.796,
"predicted_ERA": 2.4684,
"predicted_WHIP": 0.848
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.619,
"final": 1.3573,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.718,
"final": 3.8372,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.289,
"final": 1.1668,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 8.072,
"final": 6.773,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.796,
"final": 1.3051,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4684,
"final": 2.4684,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.848,
"final": 0.848,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 14,
"H": 35,
"BB": 11,
"SO": 85,
"HR": 9,
"ERA": 2.1724137931034484,
"WHIP": 0.7931034482758621,
"K9": 13.189655172413794,
"HR9": 1.396551724137931,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.7348324723809877,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"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": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 6.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": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"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": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 133,
"wins": 82,
"losses": 51,
"win_pct": 0.6165,
"runs_scored": 660.0,
"runs_allowed": 493.0,
"run_differential": 167.0,
"run_differential_per_game": 1.2556,
"avg_runs_scored": 4.9624,
"avg_runs_allowed": 3.7068,
"offense_index": 1.107,
"defense_index": 1.2093,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 2.4,
"run_differential": 38.0
},
"available": true,
"quality_score": 0.3231
},
"opponent": {
"team": "NYM",
"games": 133,
"wins": 60,
"losses": 73,
"win_pct": 0.4511,
"runs_scored": 550.0,
"runs_allowed": 596.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3459,
"avg_runs_scored": 4.1353,
"avg_runs_allowed": 4.4812,
"offense_index": 0.9225,
"defense_index": 1.0003,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.8,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.049
},
"edges": {
"quality_edge": 0.3721,
"offense_edge": 0.107,
"opponent_offense_edge": -0.0775,
"defense_strength": 0.2093,
"opponent_defense_weakness": -0.0003,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0243,
"run_prevention": 0.9481,
"strikeout": 1.0174
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 39.3,
"bb_percent": 6.0,
"woba": 0.212,
"xwoba": 0.219,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 32.9,
"avg_best_speed": 75.9061,
"avg_hyper_speed": 92.9088,
"whiff_percent": 37.9,
"swing_percent": 51.4
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": 1.6571,
"command_and_miss": 1.9071,
"regression_edge": -0.2,
"xwoba_edge": 2.5,
"barrel_edge": 0.7333,
"hard_hit_edge": 0.7,
"whiff_edge": 1.8143,
"bb_edge": 0.8,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 97.61667244035621,
"release_spin_rate": 2563.200146698222,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.6167,
"release_spin_rate": 2563.2001,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.4262,
"sample_weight": 1.0,
"run_prevention_factor": 0.8788,
"strikeout_factor": 1.16,
"walk_factor": 0.936,
"homer_factor": 0.8383,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694819",
"espn_id": 5080761,
"player_name": "Jacob Misiorowski",
"team": "MIL",
"role": "pitcher",
"espn_rank": 4,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 4,
"gp_value": 24.0,
"gp_rank": 302,
"gs_value": 24.0,
"gs_rank": 52,
"qs_value": 16.0,
"qs_rank": 6,
"era_value": 1.6758,
"era_rank": 1.0,
"w_value": 13.0,
"w_rank": 7,
"l_value": 5.0,
"l_rank": 125,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 145.0,
"ip_rank": 29,
"h_value": 77.0,
"h_rank": 141,
"er_value": 27.0,
"er_rank": 196,
"hr_value": 13.0,
"hr_rank": 108,
"bb_value": 33.0,
"bb_rank": 121,
"k_value": 216.0,
"k_rank": 1,
"k_per_9_value": 13.406897,
"k_per_9_rank": null,
"whip_value": 0.7586,
"whip_rank": 1.0,
"war_value": 5.46,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8788,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8788,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8383,
"adjusted": 1
},
"predicted_SO": {
"original": 9.0,
"factor": 1.16,
"adjusted": 10
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260827_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260827 | 20260827_MIL@NYM | home | Sean Manaea | Sean Manaea | True | 6.1 | 5.2 | -2 | 2 | 6 | 4 | 6/8 | 1/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.3076923076923075,
"WHIP": 1.3076923076923077,
"IP": 117.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.692,
"recent_avg_IP": 6.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3627,
"sample_weight": 1.0,
"run_prevention_factor": 1.0308,
"strikeout_factor": 0.992,
"walk_factor": 0.97,
"homer_factor": 1.1224,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 7.7,
"woba": 0.343,
"xwoba": 0.336,
"barrel_percent": 11.3,
"hard_hit_percent": 42.4,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 280,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "640455",
"report_date": "20260827",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 13.0,
"R": 13.0,
"H": 26.0,
"BB": 11.0,
"SO": 33.0,
"HR": 7.0,
"BF": 129.0,
"Pitches": 466.0
},
"per_game": {
"IP": 6.1,
"ER": 2.6,
"R": 2.6,
"H": 5.2,
"BB": 2.2,
"SO": 6.6,
"HR": 1.4,
"BF": 25.8,
"Pitches": 93.2
},
"rates": {
"ERA": 3.734,
"WHIP": 1.1809,
"ER_per_IP": 0.41489,
"H_per_IP": 0.82979,
"BB_per_IP": 0.35106,
"SO_per_IP": 1.05319,
"HR_per_IP": 0.2234
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 25.0,
"R": 29.0,
"H": 53.0,
"BB": 19.0,
"SO": 57.0,
"HR": 13.0,
"BF": 250.0,
"Pitches": 944.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5,
"R": 2.9,
"H": 5.3,
"BB": 1.9,
"SO": 5.7,
"HR": 1.3,
"BF": 25.0,
"Pitches": 94.4
},
"rates": {
"ERA": 3.7709,
"WHIP": 1.2067,
"ER_per_IP": 0.41899,
"H_per_IP": 0.88827,
"BB_per_IP": 0.31844,
"SO_per_IP": 0.95531,
"HR_per_IP": 0.21788
}
},
"season": {
"games": 27,
"totals": {
"IP": 117.0,
"ER": 56.0,
"R": 63.0,
"H": 114.0,
"BB": 39.0,
"SO": 117.0,
"HR": 19.0,
"BF": 506.0,
"Pitches": 1985.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0741,
"R": 2.3333,
"H": 4.2222,
"BB": 1.4444,
"SO": 4.3333,
"HR": 0.7037,
"BF": 18.7407,
"Pitches": 73.5185
},
"rates": {
"ERA": 4.3077,
"WHIP": 1.3077,
"ER_per_IP": 0.47863,
"H_per_IP": 0.97436,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.16239
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.598,
"predicted_H": 5.275,
"predicted_BB": 2.013,
"predicted_SO": 5.886,
"predicted_HR": 1.177,
"predicted_ERA": 3.9649,
"predicted_WHIP": 1.2357
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.598,
"final": 1.9332,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.275,
"final": 5.5766,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.013,
"final": 1.5916,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.886,
"final": 5.5174,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.177,
"final": 0.6874,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9649,
"final": 3.9649,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2357,
"final": 1.2357,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 25,
"H": 53,
"BB": 19,
"SO": 57,
"HR": 13,
"ERA": 3.7709497206703912,
"WHIP": 1.2067039106145252,
"K9": 8.597765363128492,
"HR9": 1.9608938547486034,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9250077757907355,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 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": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 133,
"wins": 60,
"losses": 73,
"win_pct": 0.4511,
"runs_scored": 550.0,
"runs_allowed": 596.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3459,
"avg_runs_scored": 4.1353,
"avg_runs_allowed": 4.4812,
"offense_index": 0.9225,
"defense_index": 1.0003,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 3.8,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.049
},
"opponent": {
"team": "MIL",
"games": 133,
"wins": 82,
"losses": 51,
"win_pct": 0.6165,
"runs_scored": 660.0,
"runs_allowed": 493.0,
"run_differential": 167.0,
"run_differential_per_game": 1.2556,
"avg_runs_scored": 4.9624,
"avg_runs_allowed": 3.7068,
"offense_index": 1.107,
"defense_index": 1.2093,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.2,
"avg_runs_allowed": 2.4,
"run_differential": 38.0
},
"available": true,
"quality_score": 0.3231
},
"edges": {
"quality_edge": -0.3721,
"offense_edge": -0.0775,
"opponent_offense_edge": 0.107,
"defense_strength": 0.0003,
"opponent_defense_weakness": -0.2093,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9808,
"run_prevention": 1.0357,
"strikeout": 0.9803
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 479.0,
"k_percent": 23.1,
"bb_percent": 7.7,
"woba": 0.343,
"xwoba": 0.336,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 11.3,
"hard_hit_percent": 42.4,
"avg_best_speed": 77.7894,
"avg_hyper_speed": 94.671,
"whiff_percent": 22.7,
"swing_percent": 50.0
},
"league_medians": {
"pa": 122.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6441,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6562,
"command_and_miss": 0.0207,
"regression_edge": 0.2,
"xwoba_edge": -0.7143,
"barrel_edge": -0.9333,
"hard_hit_edge": -0.6571,
"whiff_edge": -0.3571,
"bb_edge": 0.375,
"pitch_design_score": -0.2575
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 85.24923102451848,
"release_spin_rate": 2111.7826014761895,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 85.2492,
"release_spin_rate": 2111.7826,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.2575,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8392,
"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.3627,
"sample_weight": 1.0,
"run_prevention_factor": 1.0308,
"strikeout_factor": 0.992,
"walk_factor": 0.97,
"homer_factor": 1.1224,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "640455",
"espn_id": 33244,
"player_name": "Sean Manaea",
"team": "NYM",
"role": "pitcher",
"espn_rank": 280,
"espn_total_ranked": 832,
"metrics": {
"espn_rank": 280,
"gp_value": 27.0,
"gp_rank": 225,
"gs_value": 13.0,
"gs_rank": 143,
"qs_value": 6.0,
"qs_rank": 84,
"era_value": 4.3076,
"era_rank": null,
"w_value": 4.0,
"w_rank": 176,
"l_value": 5.0,
"l_rank": 125,
"sv_value": 0.0,
"sv_rank": 243,
"hld_value": 0.0,
"hld_rank": 336,
"ip_value": 117.0,
"ip_rank": 88,
"h_value": 114.0,
"h_rank": 72,
"er_value": 56.0,
"er_rank": 61,
"hr_value": 19.0,
"hr_rank": 31,
"bb_value": 39.0,
"bb_rank": 71,
"k_value": 117.0,
"k_rank": 60,
"k_per_9_value": 9.0,
"k_per_9_rank": 18.0,
"whip_value": 1.3076,
"whip_rank": null,
"war_value": 0.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0308,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0308,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1224,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.992,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 114,
"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": "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/20260827_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |