| 20260913 | 20260913_BAL@TOR | away | Trevor Rogers | Trevor Rogers | True | 6.0 | 6.0 | 0 | 4 | 4 | 0 | 5/7 | 2/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.153846153846154,
"WHIP": 1.2131868131868133,
"IP": 151.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.617,
"recent_avg_IP": 6.4,
"last_start_IP": 7.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2218,
"sample_weight": 1.0,
"run_prevention_factor": 0.9811,
"strikeout_factor": 0.9926,
"walk_factor": 0.934,
"homer_factor": 0.9726,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 5.9,
"woba": 0.305,
"xwoba": 0.294,
"barrel_percent": 6.7,
"hard_hit_percent": 37.0,
"whiff_percent": 23.8
},
"espn_rank": {
"rank": 89,
"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": "669432",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 14.0,
"R": 14.0,
"H": 32.0,
"BB": 3.0,
"SO": 36.0,
"HR": 4.0,
"BF": 126.0,
"Pitches": 485.0
},
"per_game": {
"IP": 6.1,
"ER": 2.8,
"R": 2.8,
"H": 6.4,
"BB": 0.6,
"SO": 7.2,
"HR": 0.8,
"BF": 25.2,
"Pitches": 97.0
},
"rates": {
"ERA": 3.9375,
"WHIP": 1.0938,
"ER_per_IP": 0.4375,
"H_per_IP": 1.0,
"BB_per_IP": 0.09375,
"SO_per_IP": 1.125,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 61.1,
"ER": 25.0,
"R": 28.0,
"H": 60.0,
"BB": 6.0,
"SO": 69.0,
"HR": 6.0,
"BF": 247.0,
"Pitches": 938.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5,
"R": 2.8,
"H": 6.0,
"BB": 0.6,
"SO": 6.9,
"HR": 0.6,
"BF": 24.7,
"Pitches": 93.8
},
"rates": {
"ERA": 3.6685,
"WHIP": 1.0761,
"ER_per_IP": 0.40761,
"H_per_IP": 0.97826,
"BB_per_IP": 0.09783,
"SO_per_IP": 1.125,
"HR_per_IP": 0.09783
}
},
"season": {
"games": 27,
"totals": {
"IP": 151.2,
"ER": 70.0,
"R": 75.0,
"H": 147.0,
"BB": 37.0,
"SO": 138.0,
"HR": 16.0,
"BF": 629.0,
"Pitches": 2440.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5926,
"R": 2.7778,
"H": 5.4444,
"BB": 1.3704,
"SO": 5.1111,
"HR": 0.5926,
"BF": 23.2963,
"Pitches": 90.3704
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.2132,
"ER_per_IP": 0.46154,
"H_per_IP": 0.96923,
"BB_per_IP": 0.24396,
"SO_per_IP": 0.90989,
"HR_per_IP": 0.10549
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.689,
"predicted_H": 5.974,
"predicted_BB": 0.993,
"predicted_SO": 6.434,
"predicted_HR": 0.71,
"predicted_ERA": 3.9871,
"predicted_WHIP": 1.1477
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.689,
"final": 3.2344,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.974,
"final": 5.5688,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.993,
"final": 1.4119,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.434,
"final": 5.0055,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.71,
"final": 1.2466,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9871,
"final": 3.9871,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1477,
"final": 1.1477,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 61.1,
"ER": 25,
"H": 60,
"BB": 6,
"SO": 69,
"HR": 6,
"ERA": 3.668478260869565,
"WHIP": 1.076086956521739,
"K9": 10.125,
"HR9": 0.8804347826086956,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.9095425227770824,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 668.0,
"runs_allowed": 692.0,
"run_differential": -24.0,
"run_differential_per_game": -0.1622,
"avg_runs_scored": 4.5135,
"avg_runs_allowed": 4.6757,
"offense_index": 1.0026,
"defense_index": 0.9628,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.7,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1013
},
"opponent": {
"team": "TOR",
"games": 148,
"wins": 73,
"losses": 75,
"win_pct": 0.4932,
"runs_scored": 593.0,
"runs_allowed": 635.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2838,
"avg_runs_scored": 4.0068,
"avg_runs_allowed": 4.2905,
"offense_index": 0.89,
"defense_index": 1.0492,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.7,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.0405
},
"edges": {
"quality_edge": -0.0608,
"offense_edge": 0.0026,
"opponent_offense_edge": -0.11,
"defense_strength": -0.0372,
"opponent_defense_weakness": -0.0492,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0009,
"run_prevention": 0.9892,
"strikeout": 1.007
},
"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": 599.0,
"k_percent": 21.9,
"bb_percent": 5.9,
"woba": 0.305,
"xwoba": 0.294,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 37.0,
"avg_best_speed": 77.382,
"avg_hyper_speed": 93.776,
"whiff_percent": 23.8,
"swing_percent": 53.0
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2992,
"command_and_miss": 0.0986,
"regression_edge": 0.3143,
"xwoba_edge": 0.4857,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.1429,
"whiff_edge": -0.1714,
"bb_edge": 0.825,
"pitch_design_score": -0.0344
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.23497714243578,
"release_spin_rate": 2203.749885233124,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.23497714243578,
"release_spin_rate": 2203.749885233124,
"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.235,
"release_spin_rate": 2203.7499,
"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.0344,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2456,
"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.2218,
"sample_weight": 1.0,
"run_prevention_factor": 0.9811,
"strikeout_factor": 0.9926,
"walk_factor": 0.934,
"homer_factor": 0.9726,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669432",
"espn_id": 39640,
"player_name": "Trevor Rogers",
"team": "BAL",
"role": "pitcher",
"espn_rank": 89,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 89,
"gp_value": 27.0,
"gp_rank": 294,
"gs_value": 27.0,
"gs_rank": 43,
"qs_value": 14.0,
"qs_rank": 25,
"era_value": 4.1538,
"era_rank": 41.0,
"w_value": 10.0,
"w_rank": 29,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 151.2,
"ip_rank": 45,
"h_value": 147.0,
"h_rank": 26,
"er_value": 70.0,
"er_rank": 32,
"hr_value": 16.0,
"hr_rank": 85,
"bb_value": 37.0,
"bb_rank": 110,
"k_value": 138.0,
"k_rank": 47,
"k_per_9_value": 8.189011,
"k_per_9_rank": 28.0,
"whip_value": 1.2131,
"whip_rank": 32.0,
"war_value": 1.78,
"war_rank": 33.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9811,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9811,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.934,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9726,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9926,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"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 +0."
}
],
"provenance": {
"prediction": "output/games/20260913_BAL@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"
}
} |
| 20260913 | 20260913_BAL@TOR | home | Dylan Cease | Dylan Cease | True | 6.0 | 5.0 | -3 | 1 | 1 | 0 | 5/4 | 1/5 | 5/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.3987603305785123,
"WHIP": 1.0413223140495866,
"IP": 161.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.975,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.9318,
"sample_weight": 1.0,
"run_prevention_factor": 0.9208,
"strikeout_factor": 1.1246,
"walk_factor": 1.024,
"homer_factor": 0.8891,
"regression_flag": "neutral",
"k_percent": 35.2,
"bb_percent": 10.4,
"woba": 0.247,
"xwoba": 0.259,
"barrel_percent": 5.2,
"hard_hit_percent": 32.3,
"whiff_percent": 33.6
},
"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": 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": "656302",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 8.0,
"R": 9.0,
"H": 16.0,
"BB": 11.0,
"SO": 36.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 484.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.8,
"H": 3.2,
"BB": 2.2,
"SO": 7.2,
"HR": 0.4,
"BF": 23.0,
"Pitches": 96.8
},
"rates": {
"ERA": 2.4,
"WHIP": 0.9,
"ER_per_IP": 0.26667,
"H_per_IP": 0.53333,
"BB_per_IP": 0.36667,
"SO_per_IP": 1.2,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.0,
"ER": 15.0,
"R": 18.0,
"H": 34.0,
"BB": 23.0,
"SO": 79.0,
"HR": 6.0,
"BF": 243.0,
"Pitches": 1009.0
},
"per_game": {
"IP": 6.1,
"ER": 1.5,
"R": 1.8,
"H": 3.4,
"BB": 2.3,
"SO": 7.9,
"HR": 0.6,
"BF": 24.3,
"Pitches": 100.9
},
"rates": {
"ERA": 2.1429,
"WHIP": 0.9048,
"ER_per_IP": 0.2381,
"H_per_IP": 0.53968,
"BB_per_IP": 0.36508,
"SO_per_IP": 1.25397,
"HR_per_IP": 0.09524
}
},
"season": {
"games": 27,
"totals": {
"IP": 161.1,
"ER": 43.0,
"R": 49.0,
"H": 101.0,
"BB": 67.0,
"SO": 227.0,
"HR": 11.0,
"BF": 644.0,
"Pitches": 2727.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5926,
"R": 1.8148,
"H": 3.7407,
"BB": 2.4815,
"SO": 8.4074,
"HR": 0.4074,
"BF": 23.8519,
"Pitches": 101.0
},
"rates": {
"ERA": 2.3988,
"WHIP": 1.0413,
"ER_per_IP": 0.26653,
"H_per_IP": 0.62603,
"BB_per_IP": 0.41529,
"SO_per_IP": 1.40702,
"HR_per_IP": 0.06818
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.8,
"predicted_H": 3.778,
"predicted_BB": 2.287,
"predicted_SO": 7.382,
"predicted_HR": 0.535,
"predicted_ERA": 2.6566,
"predicted_WHIP": 0.9945
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.8,
"final": 1.4672,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.778,
"final": 4.2863,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.287,
"final": 1.7516,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.382,
"final": 5.9751,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.535,
"final": 0.3124,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6566,
"final": 2.6566,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9945,
"final": 0.9945,
"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.0,
"ER": 15,
"H": 34,
"BB": 23,
"SO": 79,
"HR": 6,
"ERA": 2.142857142857143,
"WHIP": 0.9047619047619048,
"K9": 11.285714285714286,
"HR9": 0.8571428571428571,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.7336270207066891,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656302",
"player_name": "Dylan Cease",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.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": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "TOR",
"games": 148,
"wins": 73,
"losses": 75,
"win_pct": 0.4932,
"runs_scored": 593.0,
"runs_allowed": 635.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2838,
"avg_runs_scored": 4.0068,
"avg_runs_allowed": 4.2905,
"offense_index": 0.89,
"defense_index": 1.0492,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 3.7,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.0405
},
"opponent": {
"team": "BAL",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 668.0,
"runs_allowed": 692.0,
"run_differential": -24.0,
"run_differential_per_game": -0.1622,
"avg_runs_scored": 4.5135,
"avg_runs_allowed": 4.6757,
"offense_index": 1.0026,
"defense_index": 0.9628,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.7,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.1013
},
"edges": {
"quality_edge": 0.0608,
"offense_edge": -0.11,
"opponent_offense_edge": 0.0026,
"defense_strength": 0.0492,
"opponent_defense_weakness": 0.0372,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0038,
"run_prevention": 0.9925,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656302",
"profile": {
"available": true,
"pitcher_id": "656302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 618.0,
"k_percent": 35.2,
"bb_percent": 10.4,
"woba": 0.247,
"xwoba": 0.259,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 32.3,
"avg_best_speed": 73.0072,
"avg_hyper_speed": 93.1649,
"whiff_percent": 33.6,
"swing_percent": 46.1
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.1521,
"command_and_miss": 1.2186,
"regression_edge": -0.3429,
"xwoba_edge": 1.4857,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.8143,
"whiff_edge": 1.2286,
"bb_edge": -0.3,
"pitch_design_score": 0.0504
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656302",
"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": 90.74877805540463,
"release_spin_rate": 2479.6149637848303,
"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": 90.74877805540463,
"release_spin_rate": 2479.6149637848303,
"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.7488,
"release_spin_rate": 2479.615,
"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.0504,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3599,
"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.9318,
"sample_weight": 1.0,
"run_prevention_factor": 0.9208,
"strikeout_factor": 1.1246,
"walk_factor": 1.024,
"homer_factor": 0.8891,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656302",
"espn_id": 34943,
"player_name": "Dylan Cease",
"team": "TOR",
"role": "pitcher",
"espn_rank": 4,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 4,
"gp_value": 27.0,
"gp_rank": 294,
"gs_value": 27.0,
"gs_rank": 43,
"qs_value": 15.0,
"qs_rank": 18,
"era_value": 2.3987,
"era_rank": 4.0,
"w_value": 10.0,
"w_rank": 29,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 161.1,
"ip_rank": 28,
"h_value": 101.0,
"h_rank": 116,
"er_value": 43.0,
"er_rank": 142,
"hr_value": 11.0,
"hr_rank": 148,
"bb_value": 67.0,
"bb_rank": 9,
"k_value": 227.0,
"k_rank": 3,
"k_per_9_value": 12.663223,
"k_per_9_rank": 2.0,
"whip_value": 1.0413,
"whip_rank": 9.0,
"war_value": 5.82,
"war_rank": 4.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9208,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9208,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.024,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8891,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.1246,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
},
{
"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/20260913_BAL@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"
}
} |
| 20260913 | 20260913_CHW@STL | away | David Sandlin | David Sandlin | True | 4.0 | 5.2 | 5 | 6 | 0 | -6 | 5/2 | 3/0 | 4/5 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 8.1,
"WHIP": 1.3,
"IP": 10.0,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0516,
"sample_weight": 0.45,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9959,
"walk_factor": 1.0189,
"homer_factor": 1.0074,
"regression_flag": "neutral",
"k_percent": 22.6,
"bb_percent": 11.3,
"woba": 0.346,
"xwoba": 0.318,
"barrel_percent": 10.1,
"hard_hit_percent": 30.4,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 711,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689818",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 9.0,
"R": 9.0,
"H": 9.0,
"BB": 4.0,
"SO": 8.0,
"HR": 2.0,
"BF": 42.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 4.5,
"R": 4.5,
"H": 4.5,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 21.0,
"Pitches": 70.5
},
"rates": {
"ERA": 8.1,
"WHIP": 1.3,
"ER_per_IP": 0.9,
"H_per_IP": 0.9,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 9.0,
"R": 9.0,
"H": 9.0,
"BB": 4.0,
"SO": 8.0,
"HR": 2.0,
"BF": 42.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 4.5,
"R": 4.5,
"H": 4.5,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 21.0,
"Pitches": 70.5
},
"rates": {
"ERA": 8.1,
"WHIP": 1.3,
"ER_per_IP": 0.9,
"H_per_IP": 0.9,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.2
}
},
"season": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 9.0,
"R": 9.0,
"H": 9.0,
"BB": 4.0,
"SO": 8.0,
"HR": 2.0,
"BF": 42.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 4.5,
"R": 4.5,
"H": 4.5,
"BB": 2.0,
"SO": 4.0,
"HR": 1.0,
"BF": 21.0,
"Pitches": 70.5
},
"rates": {
"ERA": 8.1,
"WHIP": 1.3,
"ER_per_IP": 0.9,
"H_per_IP": 0.9,
"BB_per_IP": 0.4,
"SO_per_IP": 0.8,
"HR_per_IP": 0.2
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.652,
"predicted_H": 4.093,
"predicted_BB": 1.625,
"predicted_SO": 3.858,
"predicted_HR": 0.695,
"predicted_ERA": 5.5695,
"predicted_WHIP": 1.3343
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6518,
"form_weight": 0.3482,
"form_reliability": 0.2857,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.652,
"final": 4.8342,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.093,
"final": 4.6842,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.625,
"final": 2.5212,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.858,
"final": 3.2988,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.695,
"final": 1.5456,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5695,
"final": 5.5695,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3343,
"final": 1.3343,
"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": 10.0,
"ER": 9,
"H": 9,
"BB": 4,
"SO": 8,
"HR": 2,
"ERA": 8.1,
"WHIP": 1.3,
"K9": 7.2,
"HR9": 1.8,
"games_pitched": 2,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-06-01T00:00:00"
},
"recent_form_boost": 1.1349824635116734,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689818",
"player_name": "David Sandlin",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.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.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"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": 6.0,
"after": 6.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.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 148,
"wins": 76,
"losses": 72,
"win_pct": 0.5135,
"runs_scored": 694.0,
"runs_allowed": 658.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2432,
"avg_runs_scored": 4.6892,
"avg_runs_allowed": 4.4459,
"offense_index": 1.0439,
"defense_index": 1.0103,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0287
},
"opponent": {
"team": "STL",
"games": 149,
"wins": 73,
"losses": 76,
"win_pct": 0.4899,
"runs_scored": 680.0,
"runs_allowed": 689.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0604,
"avg_runs_scored": 4.5638,
"avg_runs_allowed": 4.6242,
"offense_index": 1.016,
"defense_index": 0.9714,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.6,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.051
},
"edges": {
"quality_edge": 0.0223,
"offense_edge": 0.0439,
"opponent_offense_edge": 0.016,
"defense_strength": 0.0103,
"opponent_defense_weakness": 0.0286,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0006,
"run_prevention": 1.0004,
"strikeout": 0.9994
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689818",
"profile": {
"available": true,
"pitcher_id": "689818",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 19.0,
"k_percent": 22.6,
"bb_percent": 11.3,
"woba": 0.346,
"xwoba": 0.318,
"sweet_spot_percent": 40.6,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 30.4,
"avg_best_speed": 75.8457,
"avg_hyper_speed": 92.733,
"whiff_percent": 22.8,
"swing_percent": 45.0
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.28,
"command_and_miss": -0.1764,
"regression_edge": 0.8,
"xwoba_edge": -0.2,
"barrel_edge": -0.6667,
"hard_hit_edge": 1.0714,
"whiff_edge": -0.3143,
"bb_edge": -0.525,
"pitch_design_score": 0.1009
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689818",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 91.64754098360656,
"release_spin_rate": 2354.5409836065573,
"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": 61,
"pitch_usage": 0.0,
"release_speed": 91.64754098360656,
"release_spin_rate": 2354.5409836065573,
"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.6475,
"release_spin_rate": 2354.541,
"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.1009,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7205,
"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.0516,
"sample_weight": 0.45,
"run_prevention_factor": 1.0044,
"strikeout_factor": 0.9959,
"walk_factor": 1.0189,
"homer_factor": 1.0074,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "689818",
"espn_id": 4960696,
"player_name": "David Sandlin",
"team": "CHW",
"role": "pitcher",
"espn_rank": 711,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 711,
"gp_value": 5.0,
"gp_rank": 635,
"gs_value": 3.0,
"gs_rank": 254,
"qs_value": 2.0,
"qs_rank": 158,
"era_value": 6.9324,
"era_rank": null,
"w_value": 2.0,
"w_rank": 317,
"l_value": 1.0,
"l_rank": 429,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 24.2,
"ip_rank": 484,
"h_value": 22.0,
"h_rank": 497,
"er_value": 19.0,
"er_rank": 339,
"hr_value": 6.0,
"hr_rank": 273,
"bb_value": 12.0,
"bb_rank": 449,
"k_value": 24.0,
"k_rank": 460,
"k_per_9_value": 8.756757,
"k_per_9_rank": 25.0,
"whip_value": 1.3783,
"whip_rank": null,
"war_value": -0.3,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.002,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 1.002,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0085,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0033,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9982,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was -6; this is the primary run-prevention error."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 6 ER."
}
],
"provenance": {
"prediction": "output/games/20260913_CHW@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"
}
} |
| 20260913 | 20260913_CHW@STL | home | Michael McGreevy | Michael McGreevy | True | 5.2 | 6.0 | 1 | 2 | 1 | -1 | 2/3 | 3/3 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9155844155844157,
"WHIP": 1.2532467532467533,
"IP": 154.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.5,
"recent_avg_IP": 5.6,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5985,
"sample_weight": 1.0,
"run_prevention_factor": 1.0509,
"strikeout_factor": 0.94,
"walk_factor": 0.948,
"homer_factor": 1.1037,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.7,
"bb_percent": 6.6,
"woba": 0.318,
"xwoba": 0.352,
"barrel_percent": 9.7,
"hard_hit_percent": 41.8,
"whiff_percent": 19.8
},
"espn_rank": {
"rank": 112,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700241",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 16.0,
"R": 20.0,
"H": 29.0,
"BB": 10.0,
"SO": 21.0,
"HR": 3.0,
"BF": 122.0,
"Pitches": 471.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 4.0,
"H": 5.8,
"BB": 2.0,
"SO": 4.2,
"HR": 0.6,
"BF": 24.4,
"Pitches": 94.2
},
"rates": {
"ERA": 5.1429,
"WHIP": 1.3929,
"ER_per_IP": 0.57143,
"H_per_IP": 1.03571,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.75,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 33.0,
"R": 38.0,
"H": 62.0,
"BB": 19.0,
"SO": 40.0,
"HR": 7.0,
"BF": 234.0,
"Pitches": 916.0
},
"per_game": {
"IP": 5.1,
"ER": 3.3,
"R": 3.8,
"H": 6.2,
"BB": 1.9,
"SO": 4.0,
"HR": 0.7,
"BF": 23.4,
"Pitches": 91.6
},
"rates": {
"ERA": 5.6752,
"WHIP": 1.5478,
"ER_per_IP": 0.63057,
"H_per_IP": 1.18471,
"BB_per_IP": 0.36306,
"SO_per_IP": 0.76433,
"HR_per_IP": 0.13376
}
},
"season": {
"games": 28,
"totals": {
"IP": 154.0,
"ER": 67.0,
"R": 72.0,
"H": 151.0,
"BB": 42.0,
"SO": 106.0,
"HR": 20.0,
"BF": 635.0,
"Pitches": 2504.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3929,
"R": 2.5714,
"H": 5.3929,
"BB": 1.5,
"SO": 3.7857,
"HR": 0.7143,
"BF": 22.6786,
"Pitches": 89.4286
},
"rates": {
"ERA": 3.9156,
"WHIP": 1.2532,
"ER_per_IP": 0.43506,
"H_per_IP": 0.98052,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.68831,
"HR_per_IP": 0.12987
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.064,
"predicted_H": 5.851,
"predicted_BB": 1.91,
"predicted_SO": 4.258,
"predicted_HR": 0.689,
"predicted_ERA": 5.004,
"predicted_WHIP": 1.4084
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.064,
"final": 2.6235,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.851,
"final": 4.2567,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.91,
"final": 2.3613,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.258,
"final": 5.3932,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.689,
"final": 0.4037,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.004,
"final": 5.004,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4084,
"final": 1.4084,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 33,
"H": 62,
"BB": 19,
"SO": 40,
"HR": 7,
"ERA": 5.675159235668789,
"WHIP": 1.5477707006369423,
"K9": 6.878980891719744,
"HR9": 1.2038216560509551,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.1440080576748546,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700241",
"player_name": "Michael McGreevy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 149,
"wins": 73,
"losses": 76,
"win_pct": 0.4899,
"runs_scored": 680.0,
"runs_allowed": 689.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0604,
"avg_runs_scored": 4.5638,
"avg_runs_allowed": 4.6242,
"offense_index": 1.016,
"defense_index": 0.9714,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 5.6,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.051
},
"opponent": {
"team": "CHW",
"games": 148,
"wins": 76,
"losses": 72,
"win_pct": 0.5135,
"runs_scored": 694.0,
"runs_allowed": 658.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2432,
"avg_runs_scored": 4.6892,
"avg_runs_allowed": 4.4459,
"offense_index": 1.0439,
"defense_index": 1.0103,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0287
},
"edges": {
"quality_edge": -0.0223,
"offense_edge": 0.016,
"opponent_offense_edge": 0.0439,
"defense_strength": -0.0286,
"opponent_defense_weakness": -0.0103,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9965,
"run_prevention": 1.011,
"strikeout": 0.9958
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700241",
"profile": {
"available": true,
"pitcher_id": "700241",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 581.0,
"k_percent": 16.7,
"bb_percent": 6.6,
"woba": 0.318,
"xwoba": 0.352,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.9445,
"avg_hyper_speed": 94.7095,
"whiff_percent": 19.8,
"swing_percent": 44.5
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6544,
"command_and_miss": -0.4707,
"regression_edge": -0.9714,
"xwoba_edge": -1.1714,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.7429,
"bb_edge": 0.65,
"pitch_design_score": -0.1565
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700241",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 87.05085559343175,
"release_spin_rate": 2203.850426376535,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 87.05085559343175,
"release_spin_rate": 2203.850426376535,
"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.0509,
"release_spin_rate": 2203.8504,
"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.1565,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1182,
"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.5985,
"sample_weight": 1.0,
"run_prevention_factor": 1.0509,
"strikeout_factor": 0.94,
"walk_factor": 0.948,
"homer_factor": 1.1037,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700241",
"espn_id": 4424141,
"player_name": "Michael McGreevy",
"team": "STL",
"role": "pitcher",
"espn_rank": 112,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 112,
"gp_value": 28.0,
"gp_rank": 278,
"gs_value": 28.0,
"gs_rank": 33,
"qs_value": 15.0,
"qs_rank": 19,
"era_value": 3.9155,
"era_rank": 32.0,
"w_value": 6.0,
"w_rank": 109,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 154.0,
"ip_rank": 42,
"h_value": 151.0,
"h_rank": 22,
"er_value": 67.0,
"er_rank": 45,
"hr_value": 20.0,
"hr_rank": 40,
"bb_value": 42.0,
"bb_rank": 74,
"k_value": 106.0,
"k_rank": 91,
"k_per_9_value": 6.194805,
"k_per_9_rank": 58.0,
"whip_value": 1.2532,
"whip_rank": 34.0,
"war_value": 1.63,
"war_rank": 36.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0509,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0509,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1037,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.94,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_CHW@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"
}
} |
| 20260913 | 20260913_CIN@MIL | away | Chase Burns | Chase Burns | True | 6.0 | 3.0 | -9 | 3 | 2 | -1 | 3/2 | 0/3 | 9/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.730337078651685,
"WHIP": 1.139325842696629,
"IP": 148.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.494,
"recent_avg_IP": 4.867,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5063,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 1.0789,
"walk_factor": 0.986,
"homer_factor": 0.9854,
"regression_flag": "neutral",
"k_percent": 29.2,
"bb_percent": 8.5,
"woba": 0.283,
"xwoba": 0.276,
"barrel_percent": 7.9,
"hard_hit_percent": 38.1,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 11,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 148.1,
"season_ERA": 2.73,
"season_WHIP": 1.139,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695505",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 9.0,
"R": 10.0,
"H": 25.0,
"BB": 5.0,
"SO": 33.0,
"HR": 2.0,
"BF": 100.0,
"Pitches": 405.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.0,
"H": 5.0,
"BB": 1.0,
"SO": 6.6,
"HR": 0.4,
"BF": 20.0,
"Pitches": 81.0
},
"rates": {
"ERA": 3.3288,
"WHIP": 1.2329,
"ER_per_IP": 0.36986,
"H_per_IP": 1.0274,
"BB_per_IP": 0.20548,
"SO_per_IP": 1.35616,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 19.0,
"R": 24.0,
"H": 44.0,
"BB": 20.0,
"SO": 60.0,
"HR": 3.0,
"BF": 212.0,
"Pitches": 875.0
},
"per_game": {
"IP": 5.0,
"ER": 1.9,
"R": 2.4,
"H": 4.4,
"BB": 2.0,
"SO": 6.0,
"HR": 0.3,
"BF": 21.2,
"Pitches": 87.5
},
"rates": {
"ERA": 3.375,
"WHIP": 1.2632,
"ER_per_IP": 0.375,
"H_per_IP": 0.86842,
"BB_per_IP": 0.39474,
"SO_per_IP": 1.18421,
"HR_per_IP": 0.05921
}
},
"season": {
"games": 27,
"totals": {
"IP": 148.1,
"ER": 45.0,
"R": 50.0,
"H": 118.0,
"BB": 51.0,
"SO": 176.0,
"HR": 15.0,
"BF": 602.0,
"Pitches": 2446.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6667,
"R": 1.8519,
"H": 4.3704,
"BB": 1.8889,
"SO": 6.5185,
"HR": 0.5556,
"BF": 22.2963,
"Pitches": 90.5926
},
"rates": {
"ERA": 2.7303,
"WHIP": 1.1393,
"ER_per_IP": 0.30337,
"H_per_IP": 0.79551,
"BB_per_IP": 0.34382,
"SO_per_IP": 1.18652,
"HR_per_IP": 0.10112
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.988,
"predicted_H": 4.866,
"predicted_BB": 1.619,
"predicted_SO": 6.316,
"predicted_HR": 0.462,
"predicted_ERA": 3.4333,
"predicted_WHIP": 1.244
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.988,
"final": 2.825,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.866,
"final": 5.3377,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.619,
"final": 0.9455,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.316,
"final": 6.1845,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.462,
"final": 1.1018,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4333,
"final": 3.4333,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.244,
"final": 1.244,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 16,
"H": 41,
"BB": 14,
"SO": 58,
"HR": 3,
"ERA": 3.1532846715328464,
"WHIP": 1.2043795620437956,
"K9": 11.430656934306569,
"HR9": 0.5912408759124087,
"games_pitched": 9,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.8517123907447325,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"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": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695505",
"player_name": "Chase Burns",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 4,
"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": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.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": "CIN",
"games": 148,
"wins": 69,
"losses": 79,
"win_pct": 0.4662,
"runs_scored": 620.0,
"runs_allowed": 766.0,
"run_differential": -146.0,
"run_differential_per_game": -0.9865,
"avg_runs_scored": 4.1892,
"avg_runs_allowed": 5.1757,
"offense_index": 0.9326,
"defense_index": 0.8679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 8.3,
"run_differential": -33.0
},
"available": true,
"quality_score": -0.1845
},
"opponent": {
"team": "MIL",
"games": 149,
"wins": 93,
"losses": 56,
"win_pct": 0.6242,
"runs_scored": 775.0,
"runs_allowed": 579.0,
"run_differential": 196.0,
"run_differential_per_game": 1.3154,
"avg_runs_scored": 5.2013,
"avg_runs_allowed": 3.8859,
"offense_index": 1.1579,
"defense_index": 1.1559,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 8.0,
"avg_runs_allowed": 5.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3366
},
"edges": {
"quality_edge": -0.5211,
"offense_edge": -0.0674,
"opponent_offense_edge": 0.1579,
"defense_strength": -0.1321,
"opponent_defense_weakness": -0.1559,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9689,
"run_prevention": 1.0645,
"strikeout": 0.9717
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695505",
"profile": {
"available": true,
"pitcher_id": "695505",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 584.0,
"k_percent": 29.2,
"bb_percent": 8.5,
"woba": 0.283,
"xwoba": 0.276,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 38.1,
"avg_best_speed": 79.6188,
"avg_hyper_speed": 93.7667,
"whiff_percent": 31.6,
"swing_percent": 49.2
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4481,
"command_and_miss": 0.8279,
"regression_edge": 0.2,
"xwoba_edge": 1.0,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.9429,
"bb_edge": 0.175,
"pitch_design_score": 0.2512
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695505",
"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": 94.33268711010393,
"release_spin_rate": 2641.2658054152125,
"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": 94.33268711010393,
"release_spin_rate": 2641.2658054152125,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.3327,
"release_spin_rate": 2641.2658,
"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.2512,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.7946,
"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.5063,
"sample_weight": 1.0,
"run_prevention_factor": 0.957,
"strikeout_factor": 1.0789,
"walk_factor": 0.986,
"homer_factor": 0.9854,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695505",
"espn_id": 4927516,
"player_name": "Chase Burns",
"team": "CIN",
"role": "pitcher",
"espn_rank": 11,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 11,
"gp_value": 27.0,
"gp_rank": 297,
"gs_value": 27.0,
"gs_rank": 45,
"qs_value": 11.0,
"qs_rank": 47,
"era_value": 2.7303,
"era_rank": 8.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 3.0,
"l_rank": 245,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 148.1,
"ip_rank": 50,
"h_value": 118.0,
"h_rank": 86,
"er_value": 45.0,
"er_rank": 133,
"hr_value": 15.0,
"hr_rank": 94,
"bb_value": 51.0,
"bb_rank": 40,
"k_value": 176.0,
"k_rank": 16,
"k_per_9_value": 10.678652,
"k_per_9_rank": 8.0,
"whip_value": 1.1393,
"whip_rank": 19.0,
"war_value": 4.89,
"war_rank": 10.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.957,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.957,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.986,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9854,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0789,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 9,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -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."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260913_CIN@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_CIN@MIL | home | Robert Gasser | Robert Gasser | True | 5.0 | 5.0 | 0 | 1 | 1 | 0 | 1/3 | 2/2 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.434306569343066,
"WHIP": 1.281021897810219,
"IP": 91.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.059,
"recent_avg_IP": 4.733,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0118,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 0.9846,
"walk_factor": 0.958,
"homer_factor": 0.9671,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 7.1,
"woba": 0.327,
"xwoba": 0.315,
"barrel_percent": 6.6,
"hard_hit_percent": 33.1,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 251,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "688107",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 11.0,
"R": 12.0,
"H": 24.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 111.0,
"Pitches": 420.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 4.8,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 22.2,
"Pitches": 84.0
},
"rates": {
"ERA": 4.0685,
"WHIP": 1.4384,
"ER_per_IP": 0.45205,
"H_per_IP": 0.9863,
"BB_per_IP": 0.45205,
"SO_per_IP": 1.06849,
"HR_per_IP": 0.12329
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 25.0,
"R": 26.0,
"H": 51.0,
"BB": 15.0,
"SO": 47.0,
"HR": 6.0,
"BF": 214.0,
"Pitches": 811.0
},
"per_game": {
"IP": 4.2,
"ER": 2.5,
"R": 2.6,
"H": 5.1,
"BB": 1.5,
"SO": 4.7,
"HR": 0.6,
"BF": 21.4,
"Pitches": 81.1
},
"rates": {
"ERA": 4.6875,
"WHIP": 1.375,
"ER_per_IP": 0.52083,
"H_per_IP": 1.0625,
"BB_per_IP": 0.3125,
"SO_per_IP": 0.97917,
"HR_per_IP": 0.125
}
},
"season": {
"games": 18,
"totals": {
"IP": 91.1,
"ER": 45.0,
"R": 47.0,
"H": 88.0,
"BB": 29.0,
"SO": 87.0,
"HR": 14.0,
"BF": 397.0,
"Pitches": 1534.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.6111,
"H": 4.8889,
"BB": 1.6111,
"SO": 4.8333,
"HR": 0.7778,
"BF": 22.0556,
"Pitches": 85.2222
},
"rates": {
"ERA": 4.4343,
"WHIP": 1.281,
"ER_per_IP": 0.4927,
"H_per_IP": 0.9635,
"BB_per_IP": 0.31752,
"SO_per_IP": 0.95255,
"HR_per_IP": 0.15328
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.401,
"predicted_H": 4.917,
"predicted_BB": 1.841,
"predicted_SO": 4.899,
"predicted_HR": 0.656,
"predicted_ERA": 4.4016,
"predicted_WHIP": 1.3768
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.401,
"final": 1.782,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.917,
"final": 3.6281,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.841,
"final": 1.9113,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.899,
"final": 6.2692,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.656,
"final": 0.808,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4016,
"final": 4.4016,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3768,
"final": 1.3768,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 25,
"H": 51,
"BB": 15,
"SO": 47,
"HR": 6,
"ERA": 4.6875,
"WHIP": 1.375,
"K9": 8.8125,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.0285771261461922,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.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": "688107",
"player_name": "Robert Gasser",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.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": "MIL",
"games": 149,
"wins": 93,
"losses": 56,
"win_pct": 0.6242,
"runs_scored": 775.0,
"runs_allowed": 579.0,
"run_differential": 196.0,
"run_differential_per_game": 1.3154,
"avg_runs_scored": 5.2013,
"avg_runs_allowed": 3.8859,
"offense_index": 1.1579,
"defense_index": 1.1559,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 8.0,
"avg_runs_allowed": 5.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3366
},
"opponent": {
"team": "CIN",
"games": 148,
"wins": 69,
"losses": 79,
"win_pct": 0.4662,
"runs_scored": 620.0,
"runs_allowed": 766.0,
"run_differential": -146.0,
"run_differential_per_game": -0.9865,
"avg_runs_scored": 4.1892,
"avg_runs_allowed": 5.1757,
"offense_index": 0.9326,
"defense_index": 0.8679,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 8.3,
"run_differential": -33.0
},
"available": true,
"quality_score": -0.1845
},
"edges": {
"quality_edge": 0.5211,
"offense_edge": 0.1579,
"opponent_offense_edge": -0.0674,
"defense_strength": 0.1559,
"opponent_defense_weakness": 0.1321,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0282,
"run_prevention": 0.9476,
"strikeout": 1.021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688107",
"profile": {
"available": true,
"pitcher_id": "688107",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 374.0,
"k_percent": 22.0,
"bb_percent": 7.1,
"woba": 0.327,
"xwoba": 0.315,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 33.1,
"avg_best_speed": 74.7327,
"avg_hyper_speed": 92.957,
"whiff_percent": 22.3,
"swing_percent": 50.0
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.014,
"command_and_miss": -0.03,
"regression_edge": 0.3429,
"xwoba_edge": -0.1143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.6857,
"whiff_edge": -0.3857,
"bb_edge": 0.525,
"pitch_design_score": -0.0854
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "688107",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.32156573641782,
"release_spin_rate": 2276.0341516600556,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.32156573641782,
"release_spin_rate": 2276.0341516600556,
"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.3216,
"release_spin_rate": 2276.0342,
"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.0854,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6099,
"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.0118,
"sample_weight": 1.0,
"run_prevention_factor": 0.999,
"strikeout_factor": 0.9846,
"walk_factor": 0.958,
"homer_factor": 0.9671,
"woba_minus_xwoba": 0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "688107",
"espn_id": 4918251,
"player_name": "Robert Gasser",
"team": "MIL",
"role": "pitcher",
"espn_rank": 251,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 251,
"gp_value": 18.0,
"gp_rank": 418,
"gs_value": 17.0,
"gs_rank": 126,
"qs_value": 4.0,
"qs_rank": 125,
"era_value": 4.4343,
"era_rank": null,
"w_value": 4.0,
"w_rank": 192,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 91.1,
"ip_rank": 142,
"h_value": 88.0,
"h_rank": 130,
"er_value": 45.0,
"er_rank": 133,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 29.0,
"bb_rank": 183,
"k_value": 87.0,
"k_rank": 140,
"k_per_9_value": 8.572992,
"k_per_9_rank": 26.0,
"whip_value": 1.281,
"whip_rank": null,
"war_value": 0.55,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.999,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.999,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9671,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9846,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260913_CIN@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_CLE@MIN | away | Tanner Bibee | Tanner Bibee | True | 5.1 | 6.2 | 4 | 5 | 2 | -3 | 9/4 | 3/2 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.21875,
"WHIP": 1.1953125,
"IP": 170.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.689,
"recent_avg_IP": 5.267,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1809,
"sample_weight": 1.0,
"run_prevention_factor": 1.0154,
"strikeout_factor": 0.9731,
"walk_factor": 0.964,
"homer_factor": 1.03,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 7.4,
"woba": 0.31,
"xwoba": 0.32,
"barrel_percent": 8.0,
"hard_hit_percent": 39.0,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 98,
"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": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676440",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 16.0,
"R": 16.0,
"H": 29.0,
"BB": 12.0,
"SO": 19.0,
"HR": 4.0,
"BF": 118.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.2,
"H": 5.8,
"BB": 2.4,
"SO": 3.8,
"HR": 0.8,
"BF": 23.6,
"Pitches": 87.2
},
"rates": {
"ERA": 5.4684,
"WHIP": 1.557,
"ER_per_IP": 0.60759,
"H_per_IP": 1.10127,
"BB_per_IP": 0.4557,
"SO_per_IP": 0.72152,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 31.0,
"R": 33.0,
"H": 56.0,
"BB": 18.0,
"SO": 46.0,
"HR": 7.0,
"BF": 247.0,
"Pitches": 932.0
},
"per_game": {
"IP": 5.2,
"ER": 3.1,
"R": 3.3,
"H": 5.6,
"BB": 1.8,
"SO": 4.6,
"HR": 0.7,
"BF": 24.7,
"Pitches": 93.2
},
"rates": {
"ERA": 4.8382,
"WHIP": 1.2832,
"ER_per_IP": 0.53757,
"H_per_IP": 0.9711,
"BB_per_IP": 0.31214,
"SO_per_IP": 0.79769,
"HR_per_IP": 0.12139
}
},
"season": {
"games": 30,
"totals": {
"IP": 170.2,
"ER": 80.0,
"R": 84.0,
"H": 152.0,
"BB": 52.0,
"SO": 133.0,
"HR": 27.0,
"BF": 704.0,
"Pitches": 2683.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6667,
"R": 2.8,
"H": 5.0667,
"BB": 1.7333,
"SO": 4.4333,
"HR": 0.9,
"BF": 23.4667,
"Pitches": 89.4333
},
"rates": {
"ERA": 4.2188,
"WHIP": 1.1953,
"ER_per_IP": 0.46875,
"H_per_IP": 0.89062,
"BB_per_IP": 0.30469,
"SO_per_IP": 0.7793,
"HR_per_IP": 0.1582
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.011,
"predicted_H": 5.536,
"predicted_BB": 2.057,
"predicted_SO": 4.313,
"predicted_HR": 0.786,
"predicted_ERA": 4.9349,
"predicted_WHIP": 1.383
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.011,
"final": 3.8272,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.536,
"final": 6.9575,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.057,
"final": 2.444,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.313,
"final": 4.5949,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.786,
"final": 0.4634,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9349,
"final": 4.9349,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.383,
"final": 1.383,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.2,
"ER": 31,
"H": 56,
"BB": 18,
"SO": 46,
"HR": 7,
"ERA": 4.838150289017341,
"WHIP": 1.2832369942196533,
"K9": 7.179190751445087,
"HR9": 1.092485549132948,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.0432312085161346,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676440",
"player_name": "Tanner Bibee",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 149,
"wins": 75,
"losses": 74,
"win_pct": 0.5034,
"runs_scored": 606.0,
"runs_allowed": 620.0,
"run_differential": -14.0,
"run_differential_per_game": -0.094,
"avg_runs_scored": 4.0671,
"avg_runs_allowed": 4.1611,
"offense_index": 0.9054,
"defense_index": 1.0795,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.9,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0086
},
"opponent": {
"team": "MIN",
"games": 148,
"wins": 70,
"losses": 78,
"win_pct": 0.473,
"runs_scored": 681.0,
"runs_allowed": 736.0,
"run_differential": -55.0,
"run_differential_per_game": -0.3716,
"avg_runs_scored": 4.6014,
"avg_runs_allowed": 4.973,
"offense_index": 1.0244,
"defense_index": 0.9033,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1034
},
"edges": {
"quality_edge": 0.0948,
"offense_edge": -0.0946,
"opponent_offense_edge": 0.0244,
"defense_strength": 0.0795,
"opponent_defense_weakness": 0.0967,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9912,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676440",
"profile": {
"available": true,
"pitcher_id": "676440",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 652.0,
"k_percent": 18.9,
"bb_percent": 7.4,
"woba": 0.31,
"xwoba": 0.32,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 39.0,
"avg_best_speed": 78.6033,
"avg_hyper_speed": 93.9191,
"whiff_percent": 23.4,
"swing_percent": 46.7
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1654,
"command_and_miss": -0.1893,
"regression_edge": -0.2857,
"xwoba_edge": -0.2571,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.2286,
"bb_edge": 0.45,
"pitch_design_score": -0.1318
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676440",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.49350617866824,
"release_spin_rate": 2303.8031451019965,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.49350617866824,
"release_spin_rate": 2303.8031451019965,
"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.4935,
"release_spin_rate": 2303.8031,
"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.1318,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9411,
"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.1809,
"sample_weight": 1.0,
"run_prevention_factor": 1.0154,
"strikeout_factor": 0.9731,
"walk_factor": 0.964,
"homer_factor": 1.03,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676440",
"espn_id": 4345278,
"player_name": "Tanner Bibee",
"team": "CLE",
"role": "pitcher",
"espn_rank": 98,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 98,
"gp_value": 30.0,
"gp_rank": 225,
"gs_value": 30.0,
"gs_rank": 4,
"qs_value": 17.0,
"qs_rank": 12,
"era_value": 4.2187,
"era_rank": 41.0,
"w_value": 5.0,
"w_rank": 150,
"l_value": 15.0,
"l_rank": 1,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 170.2,
"ip_rank": 11,
"h_value": 152.0,
"h_rank": 20,
"er_value": 80.0,
"er_rank": 16,
"hr_value": 27.0,
"hr_rank": 7,
"bb_value": 52.0,
"bb_rank": 36,
"k_value": 133.0,
"k_rank": 52,
"k_per_9_value": 7.013672,
"k_per_9_rank": 127.0,
"whip_value": 1.1953,
"whip_rank": 26.0,
"war_value": 1.75,
"war_rank": 34.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0154,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0154,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.03,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9731,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 9,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_CLE@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_CLE@MIN | home | Joe Ryan | Joe Ryan | True | 5.1 | 4.0 | -4 | 3 | 4 | 1 | 3/7 | 0/1 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6786632390745506,
"WHIP": 1.1336760925449871,
"IP": 129.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.403,
"recent_avg_IP": 5.067,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2243,
"sample_weight": 1.0,
"run_prevention_factor": 0.9809,
"strikeout_factor": 1.032,
"walk_factor": 0.92,
"homer_factor": 1.0624,
"regression_flag": "neutral",
"k_percent": 26.8,
"bb_percent": 5.2,
"woba": 0.301,
"xwoba": 0.29,
"barrel_percent": 10.5,
"hard_hit_percent": 41.4,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 81,
"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": "657746",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 20.0,
"R": 22.0,
"H": 34.0,
"BB": 5.0,
"SO": 23.0,
"HR": 8.0,
"BF": 118.0,
"Pitches": 430.0
},
"per_game": {
"IP": 5.0,
"ER": 4.0,
"R": 4.4,
"H": 6.8,
"BB": 1.0,
"SO": 4.6,
"HR": 1.6,
"BF": 23.6,
"Pitches": 86.0
},
"rates": {
"ERA": 7.1053,
"WHIP": 1.5395,
"ER_per_IP": 0.78947,
"H_per_IP": 1.34211,
"BB_per_IP": 0.19737,
"SO_per_IP": 0.90789,
"HR_per_IP": 0.31579
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 27.0,
"R": 35.0,
"H": 59.0,
"BB": 12.0,
"SO": 61.0,
"HR": 11.0,
"BF": 234.0,
"Pitches": 924.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 3.5,
"H": 5.9,
"BB": 1.2,
"SO": 6.1,
"HR": 1.1,
"BF": 23.4,
"Pitches": 92.4
},
"rates": {
"ERA": 4.5562,
"WHIP": 1.3313,
"ER_per_IP": 0.50625,
"H_per_IP": 1.10625,
"BB_per_IP": 0.225,
"SO_per_IP": 1.14375,
"HR_per_IP": 0.20625
}
},
"season": {
"games": 24,
"totals": {
"IP": 129.2,
"ER": 53.0,
"R": 66.0,
"H": 119.0,
"BB": 28.0,
"SO": 145.0,
"HR": 18.0,
"BF": 542.0,
"Pitches": 2155.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2083,
"R": 2.75,
"H": 4.9583,
"BB": 1.1667,
"SO": 6.0417,
"HR": 0.75,
"BF": 22.5833,
"Pitches": 89.7917
},
"rates": {
"ERA": 3.6787,
"WHIP": 1.1337,
"ER_per_IP": 0.40874,
"H_per_IP": 0.91774,
"BB_per_IP": 0.21594,
"SO_per_IP": 1.11825,
"HR_per_IP": 0.13882
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.103,
"predicted_H": 5.942,
"predicted_BB": 1.242,
"predicted_SO": 5.296,
"predicted_HR": 1.176,
"predicted_ERA": 5.3605,
"predicted_WHIP": 1.379
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.103,
"final": 3.0594,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.942,
"final": 4.698,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.242,
"final": 0.7168,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.296,
"final": 4.3252,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.176,
"final": 1.1016,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3605,
"final": 5.3605,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.379,
"final": 1.379,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 27,
"H": 59,
"BB": 12,
"SO": 61,
"HR": 11,
"ERA": 4.55625,
"WHIP": 1.33125,
"K9": 10.293750000000001,
"HR9": 1.8562500000000002,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.0127177511461924,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657746",
"player_name": "Joe Ryan",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 148,
"wins": 70,
"losses": 78,
"win_pct": 0.473,
"runs_scored": 681.0,
"runs_allowed": 736.0,
"run_differential": -55.0,
"run_differential_per_game": -0.3716,
"avg_runs_scored": 4.6014,
"avg_runs_allowed": 4.973,
"offense_index": 1.0244,
"defense_index": 0.9033,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.3,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.1034
},
"opponent": {
"team": "CLE",
"games": 149,
"wins": 75,
"losses": 74,
"win_pct": 0.5034,
"runs_scored": 606.0,
"runs_allowed": 620.0,
"run_differential": -14.0,
"run_differential_per_game": -0.094,
"avg_runs_scored": 4.0671,
"avg_runs_allowed": 4.1611,
"offense_index": 0.9054,
"defense_index": 1.0795,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 4.9,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0086
},
"edges": {
"quality_edge": -0.0948,
"offense_edge": 0.0244,
"opponent_offense_edge": -0.0946,
"defense_strength": -0.0967,
"opponent_defense_weakness": -0.0795,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9971,
"run_prevention": 0.9993,
"strikeout": 1.0047
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657746",
"profile": {
"available": true,
"pitcher_id": "657746",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 501.0,
"k_percent": 26.8,
"bb_percent": 5.2,
"woba": 0.301,
"xwoba": 0.29,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 41.4,
"avg_best_speed": 78.6062,
"avg_hyper_speed": 94.378,
"whiff_percent": 25.8,
"swing_percent": 50.1
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0992,
"command_and_miss": 0.5486,
"regression_edge": 0.3143,
"xwoba_edge": 0.6,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.5,
"whiff_edge": 0.1143,
"bb_edge": 1.0,
"pitch_design_score": -0.0669
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657746",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 88.65179155849852,
"release_spin_rate": 2378.399774086595,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 88.65179155849852,
"release_spin_rate": 2378.399774086595,
"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.6518,
"release_spin_rate": 2378.3998,
"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.0669,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4778,
"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.2243,
"sample_weight": 1.0,
"run_prevention_factor": 0.9809,
"strikeout_factor": 1.032,
"walk_factor": 0.92,
"homer_factor": 1.0624,
"woba_minus_xwoba": 0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657746",
"espn_id": 42450,
"player_name": "Joe Ryan",
"team": "MIN",
"role": "pitcher",
"espn_rank": 81,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 81,
"gp_value": 24.0,
"gp_rank": 344,
"gs_value": 24.0,
"gs_rank": 75,
"qs_value": 11.0,
"qs_rank": 47,
"era_value": 3.6786,
"era_rank": null,
"w_value": 6.0,
"w_rank": 109,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 129.2,
"ip_rank": 85,
"h_value": 119.0,
"h_rank": 83,
"er_value": 53.0,
"er_rank": 100,
"hr_value": 18.0,
"hr_rank": 62,
"bb_value": 28.0,
"bb_rank": 191,
"k_value": 145.0,
"k_rank": 38,
"k_per_9_value": 10.064267,
"k_per_9_rank": 12.0,
"whip_value": 1.1336,
"whip_rank": null,
"war_value": 1.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9809,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9809,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0624,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.032,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260913_CLE@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_COL@DET | away | Gabriel Hughes | Gabriel Hughes | True | 4.1 | 2.0 | -7 | 6 | 5 | -1 | 7/5 | 2/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.808139534883721,
"WHIP": 1.377906976744186,
"IP": 57.1,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 4.939,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1733,
"sample_weight": 0.908,
"run_prevention_factor": 0.9853,
"strikeout_factor": 0.9595,
"walk_factor": 0.9855,
"homer_factor": 0.8976,
"regression_flag": "neutral",
"k_percent": 19.2,
"bb_percent": 8.4,
"woba": 0.32,
"xwoba": 0.292,
"barrel_percent": 4.5,
"hard_hit_percent": 29.2,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 309,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687312",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 16.0,
"R": 17.0,
"H": 27.0,
"BB": 9.0,
"SO": 17.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 419.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.4,
"H": 5.4,
"BB": 1.8,
"SO": 3.4,
"HR": 0.6,
"BF": 21.4,
"Pitches": 83.8
},
"rates": {
"ERA": 6.0845,
"WHIP": 1.5211,
"ER_per_IP": 0.67606,
"H_per_IP": 1.14085,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.71831,
"HR_per_IP": 0.12676
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 34.0,
"R": 35.0,
"H": 52.0,
"BB": 18.0,
"SO": 40.0,
"HR": 5.0,
"BF": 215.0,
"Pitches": 830.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 3.5,
"H": 5.2,
"BB": 1.8,
"SO": 4.0,
"HR": 0.5,
"BF": 21.5,
"Pitches": 83.0
},
"rates": {
"ERA": 6.331,
"WHIP": 1.4483,
"ER_per_IP": 0.70345,
"H_per_IP": 1.07586,
"BB_per_IP": 0.37241,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 12,
"totals": {
"IP": 57.1,
"ER": 37.0,
"R": 38.0,
"H": 58.0,
"BB": 21.0,
"SO": 48.0,
"HR": 5.0,
"BF": 250.0,
"Pitches": 977.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0833,
"R": 3.1667,
"H": 4.8333,
"BB": 1.75,
"SO": 4.0,
"HR": 0.4167,
"BF": 20.8333,
"Pitches": 81.4167
},
"rates": {
"ERA": 5.8081,
"WHIP": 1.3779,
"ER_per_IP": 0.64535,
"H_per_IP": 1.01163,
"BB_per_IP": 0.36628,
"SO_per_IP": 0.83721,
"HR_per_IP": 0.08721
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.929,
"predicted_H": 4.933,
"predicted_BB": 1.743,
"predicted_SO": 3.862,
"predicted_HR": 0.565,
"predicted_ERA": 5.6492,
"predicted_WHIP": 1.4306
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 7.0,
"form": 2.929,
"final": 4.8597,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.933,
"final": 4.4905,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.743,
"final": 1.8649,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.862,
"final": 4.4017,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.565,
"final": 0.297,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6492,
"final": 5.6492,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4306,
"final": 1.4306,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 34,
"H": 52,
"BB": 18,
"SO": 40,
"HR": 5,
"ERA": 6.3310344827586205,
"WHIP": 1.4482758620689655,
"K9": 7.448275862068965,
"HR9": 0.9310344827586207,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.2183848203782817,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 7.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 7,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"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": 7,
"predicted_H": 7,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 7.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 7.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.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": 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": 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": 7.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": 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": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": 7.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 7.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": "COL",
"games": 147,
"wins": 55,
"losses": 92,
"win_pct": 0.3741,
"runs_scored": 688.0,
"runs_allowed": 846.0,
"run_differential": -158.0,
"run_differential_per_game": -1.0748,
"avg_runs_scored": 4.6803,
"avg_runs_allowed": 5.7551,
"offense_index": 1.0397,
"defense_index": 0.7822,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.0,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.3083
},
"opponent": {
"team": "DET",
"games": 147,
"wins": 68,
"losses": 79,
"win_pct": 0.4626,
"runs_scored": 647.0,
"runs_allowed": 588.0,
"run_differential": 59.0,
"run_differential_per_game": 0.4014,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 4.0,
"offense_index": 0.9777,
"defense_index": 1.1254,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.6,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0173
},
"edges": {
"quality_edge": -0.3256,
"offense_edge": 0.0397,
"opponent_offense_edge": -0.0223,
"defense_strength": -0.2178,
"opponent_defense_weakness": -0.1254,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9813,
"run_prevention": 1.0345,
"strikeout": 0.992
},
"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": 227.0,
"k_percent": 19.2,
"bb_percent": 8.4,
"woba": 0.32,
"xwoba": 0.292,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 29.2,
"avg_best_speed": 77.3997,
"avg_hyper_speed": 92.6556,
"whiff_percent": 20.0,
"swing_percent": 47.5
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3828,
"command_and_miss": -0.39,
"regression_edge": 0.8,
"xwoba_edge": 0.5429,
"barrel_edge": 0.5778,
"hard_hit_edge": 1.2571,
"whiff_edge": -0.7143,
"bb_edge": 0.2,
"pitch_design_score": -0.0259
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687312",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.38646950848464,
"release_spin_rate": 2157.632526821067,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 89.38646950848464,
"release_spin_rate": 2157.632526821067,
"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.3865,
"release_spin_rate": 2157.6325,
"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.0259,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.185,
"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.1733,
"sample_weight": 0.908,
"run_prevention_factor": 0.9853,
"strikeout_factor": 0.9595,
"walk_factor": 0.9855,
"homer_factor": 0.8976,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687312",
"espn_id": 4634930,
"player_name": "Gabriel Hughes",
"team": "COL",
"role": "pitcher",
"espn_rank": 309,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 309,
"gp_value": 12.0,
"gp_rank": 497,
"gs_value": 11.0,
"gs_rank": 163,
"qs_value": 1.0,
"qs_rank": 178,
"era_value": 5.8081,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 7.0,
"l_rank": 85,
"sv_value": 1.0,
"sv_rank": 140,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 57.1,
"ip_rank": 255,
"h_value": 58.0,
"h_rank": 201,
"er_value": 37.0,
"er_rank": 163,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 21.0,
"bb_rank": 282,
"k_value": 48.0,
"k_rank": 306,
"k_per_9_value": 7.5348835,
"k_per_9_rank": 32.0,
"whip_value": 1.3779,
"whip_rank": null,
"war_value": 0.3,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9867,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9867,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9868,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.907,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9632,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 7,
"predicted_R": 7,
"predicted_ER": 7,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260913_COL@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_COL@DET | home | Jackson Jobe | Jackson Jobe | True | 4.2 | 6.1 | 5 | 1 | 1 | 0 | 4/3 | 2/1 | 5/8 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.447058823529412,
"WHIP": 1.411764705882353,
"IP": 28.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.722,
"recent_avg_IP": 4.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1556,
"sample_weight": 0.45,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.982,
"walk_factor": 1.0036,
"homer_factor": 1.0291,
"regression_flag": "neutral",
"k_percent": 20.8,
"bb_percent": 9.6,
"woba": 0.357,
"xwoba": 0.342,
"barrel_percent": 9.6,
"hard_hit_percent": 36.9,
"whiff_percent": 19.2
},
"espn_rank": {
"rank": 375,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695549",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 14.0,
"R": 15.0,
"H": 27.0,
"BB": 11.0,
"SO": 22.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 431.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.0,
"H": 5.4,
"BB": 2.2,
"SO": 4.4,
"HR": 1.0,
"BF": 21.8,
"Pitches": 86.2
},
"rates": {
"ERA": 5.4,
"WHIP": 1.6286,
"ER_per_IP": 0.6,
"H_per_IP": 1.15714,
"BB_per_IP": 0.47143,
"SO_per_IP": 0.94286,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 28.1,
"ER": 14.0,
"R": 15.0,
"H": 28.0,
"BB": 12.0,
"SO": 26.0,
"HR": 5.0,
"BF": 125.0,
"Pitches": 502.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.5,
"H": 4.6667,
"BB": 2.0,
"SO": 4.3333,
"HR": 0.8333,
"BF": 20.8333,
"Pitches": 83.6667
},
"rates": {
"ERA": 4.4471,
"WHIP": 1.4118,
"ER_per_IP": 0.49412,
"H_per_IP": 0.98824,
"BB_per_IP": 0.42353,
"SO_per_IP": 0.91765,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 6,
"totals": {
"IP": 28.1,
"ER": 14.0,
"R": 15.0,
"H": 28.0,
"BB": 12.0,
"SO": 26.0,
"HR": 5.0,
"BF": 125.0,
"Pitches": 502.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.5,
"H": 4.6667,
"BB": 2.0,
"SO": 4.3333,
"HR": 0.8333,
"BF": 20.8333,
"Pitches": 83.6667
},
"rates": {
"ERA": 4.4471,
"WHIP": 1.4118,
"ER_per_IP": 0.49412,
"H_per_IP": 0.98824,
"BB_per_IP": 0.42353,
"SO_per_IP": 0.91765,
"HR_per_IP": 0.17647
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.559,
"predicted_H": 4.951,
"predicted_BB": 1.97,
"predicted_SO": 4.387,
"predicted_HR": 0.842,
"predicted_ERA": 4.9346,
"predicted_WHIP": 1.483
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.559,
"final": 1.714,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.951,
"final": 4.4355,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.97,
"final": 1.9863,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.387,
"final": 4.7193,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.842,
"final": 0.3856,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9346,
"final": 4.9346,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.483,
"final": 1.483,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 28.1,
"ER": 14,
"H": 28,
"BB": 12,
"SO": 26,
"HR": 5,
"ERA": 4.447058823529412,
"WHIP": 1.411764705882353,
"K9": 8.258823529411766,
"HR9": 1.5882352941176472,
"games_pitched": 6,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 1.0051367236089102,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695549",
"player_name": "Jackson Jobe",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.2,
"delta": -0.4667,
"percent_delta": -0.1,
"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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 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": "DET",
"games": 147,
"wins": 68,
"losses": 79,
"win_pct": 0.4626,
"runs_scored": 647.0,
"runs_allowed": 588.0,
"run_differential": 59.0,
"run_differential_per_game": 0.4014,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 4.0,
"offense_index": 0.9777,
"defense_index": 1.1254,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.6,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0173
},
"opponent": {
"team": "COL",
"games": 147,
"wins": 55,
"losses": 92,
"win_pct": 0.3741,
"runs_scored": 688.0,
"runs_allowed": 846.0,
"run_differential": -158.0,
"run_differential_per_game": -1.0748,
"avg_runs_scored": 4.6803,
"avg_runs_allowed": 5.7551,
"offense_index": 1.0397,
"defense_index": 0.7822,
"current_streak": "L5",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.0,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.3083
},
"edges": {
"quality_edge": 0.3256,
"offense_edge": -0.0223,
"opponent_offense_edge": 0.0397,
"defense_strength": 0.1254,
"opponent_defense_weakness": 0.2178,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0152,
"run_prevention": 0.9775,
"strikeout": 1.0066
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695549",
"profile": {
"available": true,
"pitcher_id": "695549",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 103.0,
"k_percent": 20.8,
"bb_percent": 9.6,
"woba": 0.357,
"xwoba": 0.342,
"sweet_spot_percent": 27.4,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 36.9,
"avg_best_speed": 77.3603,
"avg_hyper_speed": 93.8258,
"whiff_percent": 19.2,
"swing_percent": 47.6
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5357,
"command_and_miss": -0.3871,
"regression_edge": 0.4286,
"xwoba_edge": -0.8857,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.1571,
"whiff_edge": -0.8286,
"bb_edge": -0.1,
"pitch_design_score": 0.1497
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695549",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 92.52204267498249,
"release_spin_rate": 2456.0230544362557,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 92.52204267498249,
"release_spin_rate": 2456.0230544362557,
"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.522,
"release_spin_rate": 2456.0231,
"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.1497,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0692,
"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.1556,
"sample_weight": 0.45,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.982,
"walk_factor": 1.0036,
"homer_factor": 1.0291,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695549",
"espn_id": 4872647,
"player_name": "Jackson Jobe",
"team": "DET",
"role": "pitcher",
"espn_rank": 375,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 375,
"gp_value": 6.0,
"gp_rank": 613,
"gs_value": 6.0,
"gs_rank": 207,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 4.447,
"era_rank": null,
"w_value": 1.0,
"w_rank": 414,
"l_value": 2.0,
"l_rank": 330,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 28.1,
"ip_rank": 450,
"h_value": 28.0,
"h_rank": 436,
"er_value": 14.0,
"er_rank": 446,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 12.0,
"bb_rank": 447,
"k_value": 26.0,
"k_rank": 442,
"k_per_9_value": 8.258823,
"k_per_9_rank": 26.0,
"whip_value": 1.4117,
"whip_rank": null,
"war_value": 0.15,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0059,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0059,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0016,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0131,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9919,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_COL@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_HOU@TB | away | Hayden Wesneski | Hayden Wesneski | True | 5.2 | 3.0 | -8 | 3 | 3 | 0 | 4/6 | 3/2 | 8/2 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 3.3503649635036497,
"WHIP": 1.0291970802919708,
"IP": 45.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 5.708,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0621,
"sample_weight": 0.624,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9911,
"walk_factor": 0.9825,
"homer_factor": 0.9929,
"regression_flag": "neutral",
"k_percent": 20.0,
"bb_percent": 7.8,
"woba": 0.267,
"xwoba": 0.297,
"barrel_percent": 6.3,
"hard_hit_percent": 40.6,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 168,
"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.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669713",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 8.0,
"SO": 24.0,
"HR": 1.0,
"BF": 105.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 1.6,
"SO": 4.8,
"HR": 0.2,
"BF": 21.0,
"Pitches": 87.0
},
"rates": {
"ERA": 3.0,
"WHIP": 0.9259,
"ER_per_IP": 0.33333,
"H_per_IP": 0.62963,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.03704
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 45.2,
"ER": 17.0,
"R": 17.0,
"H": 33.0,
"BB": 14.0,
"SO": 36.0,
"HR": 3.0,
"BF": 180.0,
"Pitches": 675.0
},
"per_game": {
"IP": 5.2,
"ER": 2.125,
"R": 2.125,
"H": 4.125,
"BB": 1.75,
"SO": 4.5,
"HR": 0.375,
"BF": 22.5,
"Pitches": 84.375
},
"rates": {
"ERA": 3.3504,
"WHIP": 1.0292,
"ER_per_IP": 0.37226,
"H_per_IP": 0.72263,
"BB_per_IP": 0.30657,
"SO_per_IP": 0.78832,
"HR_per_IP": 0.06569
}
},
"season": {
"games": 8,
"totals": {
"IP": 45.2,
"ER": 17.0,
"R": 17.0,
"H": 33.0,
"BB": 14.0,
"SO": 36.0,
"HR": 3.0,
"BF": 180.0,
"Pitches": 675.0
},
"per_game": {
"IP": 5.2,
"ER": 2.125,
"R": 2.125,
"H": 4.125,
"BB": 1.75,
"SO": 4.5,
"HR": 0.375,
"BF": 22.5,
"Pitches": 84.375
},
"rates": {
"ERA": 3.3504,
"WHIP": 1.0292,
"ER_per_IP": 0.37226,
"H_per_IP": 0.72263,
"BB_per_IP": 0.30657,
"SO_per_IP": 0.78832,
"HR_per_IP": 0.06569
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.246,
"predicted_H": 4.31,
"predicted_BB": 1.807,
"predicted_SO": 4.915,
"predicted_HR": 0.467,
"predicted_ERA": 3.657,
"predicted_WHIP": 1.1066
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.246,
"final": 3.1449,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.31,
"final": 4.1511,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.807,
"final": 2.4184,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.915,
"final": 6.496,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.467,
"final": 1.2527,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.657,
"final": 3.657,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1066,
"final": 1.1066,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 17,
"H": 33,
"BB": 14,
"SO": 36,
"HR": 3,
"ERA": 3.350364963503649,
"WHIP": 1.0291970802919708,
"K9": 7.094890510948904,
"HR9": 0.5912408759124087,
"games_pitched": 8,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8725825299176726,
"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": 8.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 148,
"wins": 75,
"losses": 73,
"win_pct": 0.5068,
"runs_scored": 663.0,
"runs_allowed": 705.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2838,
"avg_runs_scored": 4.4797,
"avg_runs_allowed": 4.7635,
"offense_index": 0.9951,
"defense_index": 0.945,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.5,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0289
},
"opponent": {
"team": "TB",
"games": 147,
"wins": 88,
"losses": 59,
"win_pct": 0.5986,
"runs_scored": 665.0,
"runs_allowed": 607.0,
"run_differential": 58.0,
"run_differential_per_game": 0.3946,
"avg_runs_scored": 4.5238,
"avg_runs_allowed": 4.1293,
"offense_index": 1.0049,
"defense_index": 1.0902,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.2,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.167
},
"edges": {
"quality_edge": -0.1959,
"offense_edge": -0.0049,
"opponent_offense_edge": 0.0049,
"defense_strength": -0.055,
"opponent_defense_weakness": -0.0902,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9903,
"run_prevention": 1.0161,
"strikeout": 0.9937
},
"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": 156.0,
"k_percent": 20.0,
"bb_percent": 7.8,
"woba": 0.267,
"xwoba": 0.297,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 40.6,
"avg_best_speed": 76.4463,
"avg_hyper_speed": 94.0168,
"whiff_percent": 24.5,
"swing_percent": 49.0
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3837,
"command_and_miss": -0.0836,
"regression_edge": -0.8571,
"xwoba_edge": 0.4,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.3714,
"whiff_edge": -0.0714,
"bb_edge": 0.35,
"pitch_design_score": -0.0997
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.06911274301434,
"release_spin_rate": 2319.3920687048562,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.06911274301434,
"release_spin_rate": 2319.3920687048562,
"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.0691,
"release_spin_rate": 2319.3921,
"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.0997,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7119,
"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.0621,
"sample_weight": 0.624,
"run_prevention_factor": 0.9947,
"strikeout_factor": 0.9911,
"walk_factor": 0.9825,
"homer_factor": 0.9929,
"woba_minus_xwoba": -0.03,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669713",
"espn_id": 42996,
"player_name": "Hayden Wesneski",
"team": "HOU",
"role": "pitcher",
"espn_rank": 168,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 168,
"gp_value": 8.0,
"gp_rank": 560,
"gs_value": 8.0,
"gs_rank": 190,
"qs_value": 4.0,
"qs_rank": 125,
"era_value": 3.3503,
"era_rank": null,
"w_value": 5.0,
"w_rank": 149,
"l_value": 1.0,
"l_rank": 429,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 45.2,
"ip_rank": 330,
"h_value": 33.0,
"h_rank": 392,
"er_value": 17.0,
"er_rank": 380,
"hr_value": 3.0,
"hr_rank": 446,
"bb_value": 14.0,
"bb_rank": 401,
"k_value": 36.0,
"k_rank": 378,
"k_per_9_value": 7.09489,
"k_per_9_rank": 30.0,
"whip_value": 1.0291,
"whip_rank": null,
"war_value": 1.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9967,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9967,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9891,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9956,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9944,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260913_HOU@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_HOU@TB | home | Freddy Peralta | Freddy Peralta | True | 5.2 | 5.0 | -2 | 1 | 0 | -1 | 1/0 | 3/3 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.823529411764706,
"WHIP": 1.3594771241830066,
"IP": 153.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.276,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0888,
"sample_weight": 1.0,
"run_prevention_factor": 0.9925,
"strikeout_factor": 1.0017,
"walk_factor": 0.98,
"homer_factor": 0.9872,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 8.2,
"woba": 0.332,
"xwoba": 0.306,
"barrel_percent": 6.3,
"hard_hit_percent": 39.0,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 537,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "642547",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 5.0,
"SO": 21.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 421.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 1.0,
"SO": 4.2,
"HR": 0.6,
"BF": 22.4,
"Pitches": 84.2
},
"rates": {
"ERA": 2.7303,
"WHIP": 0.7753,
"ER_per_IP": 0.30337,
"H_per_IP": 0.60674,
"BB_per_IP": 0.16854,
"SO_per_IP": 0.70787,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 30.0,
"R": 31.0,
"H": 50.0,
"BB": 16.0,
"SO": 44.0,
"HR": 9.0,
"BF": 222.0,
"Pitches": 882.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.1,
"H": 5.0,
"BB": 1.6,
"SO": 4.4,
"HR": 0.9,
"BF": 22.2,
"Pitches": 88.2
},
"rates": {
"ERA": 5.0943,
"WHIP": 1.2453,
"ER_per_IP": 0.56604,
"H_per_IP": 0.9434,
"BB_per_IP": 0.30189,
"SO_per_IP": 0.83019,
"HR_per_IP": 0.16981
}
},
"season": {
"games": 29,
"totals": {
"IP": 153.0,
"ER": 82.0,
"R": 90.0,
"H": 153.0,
"BB": 55.0,
"SO": 142.0,
"HR": 23.0,
"BF": 667.0,
"Pitches": 2683.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8276,
"R": 3.1034,
"H": 5.2759,
"BB": 1.8966,
"SO": 4.8966,
"HR": 0.7931,
"BF": 23.0,
"Pitches": 92.5172
},
"rates": {
"ERA": 4.8235,
"WHIP": 1.3595,
"ER_per_IP": 0.53595,
"H_per_IP": 1.0,
"BB_per_IP": 0.35948,
"SO_per_IP": 0.9281,
"HR_per_IP": 0.15033
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.542,
"predicted_H": 4.669,
"predicted_BB": 1.526,
"predicted_SO": 4.602,
"predicted_HR": 0.77,
"predicted_ERA": 4.0578,
"predicted_WHIP": 1.0988
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.542,
"final": 1.9065,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.669,
"final": 3.1568,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.526,
"final": 2.1335,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.602,
"final": 4.3539,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.77,
"final": 0.4526,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0578,
"final": 4.0578,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0988,
"final": 1.0988,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 30,
"H": 50,
"BB": 16,
"SO": 44,
"HR": 9,
"ERA": 5.094339622641509,
"WHIP": 1.2452830188679243,
"K9": 7.471698113207546,
"HR9": 1.5283018867924527,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.0741818275350805,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 147,
"wins": 88,
"losses": 59,
"win_pct": 0.5986,
"runs_scored": 665.0,
"runs_allowed": 607.0,
"run_differential": 58.0,
"run_differential_per_game": 0.3946,
"avg_runs_scored": 4.5238,
"avg_runs_allowed": 4.1293,
"offense_index": 1.0049,
"defense_index": 1.0902,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.2,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.167
},
"opponent": {
"team": "HOU",
"games": 148,
"wins": 75,
"losses": 73,
"win_pct": 0.5068,
"runs_scored": 663.0,
"runs_allowed": 705.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2838,
"avg_runs_scored": 4.4797,
"avg_runs_allowed": 4.7635,
"offense_index": 0.9951,
"defense_index": 0.945,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.5,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0289
},
"edges": {
"quality_edge": 0.1959,
"offense_edge": 0.0049,
"opponent_offense_edge": -0.0049,
"defense_strength": 0.0902,
"opponent_defense_weakness": 0.055,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0107,
"run_prevention": 0.9804,
"strikeout": 1.0063
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 641.0,
"k_percent": 21.3,
"bb_percent": 8.2,
"woba": 0.332,
"xwoba": 0.306,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 39.0,
"avg_best_speed": 76.4333,
"avg_hyper_speed": 93.6551,
"whiff_percent": 26.0,
"swing_percent": 47.7
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0055,
"command_and_miss": 0.055,
"regression_edge": 0.7429,
"xwoba_edge": 0.1429,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.1429,
"whiff_edge": 0.1429,
"bb_edge": 0.25,
"pitch_design_score": -0.0354
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.21635303182393,
"release_spin_rate": 2294.820654554264,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 89.21635303182393,
"release_spin_rate": 2294.820654554264,
"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.2164,
"release_spin_rate": 2294.8207,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0354,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.253,
"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.0888,
"sample_weight": 1.0,
"run_prevention_factor": 0.9925,
"strikeout_factor": 1.0017,
"walk_factor": 0.98,
"homer_factor": 0.9872,
"woba_minus_xwoba": 0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "642547",
"espn_id": 39825,
"player_name": "Freddy Peralta",
"team": "TB",
"role": "pitcher",
"espn_rank": 537,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 537,
"gp_value": 29.0,
"gp_rank": 242,
"gs_value": 29.0,
"gs_rank": 12,
"qs_value": 8.0,
"qs_rank": 75,
"era_value": 4.8235,
"era_rank": 47.0,
"w_value": 8.0,
"w_rank": 65,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 153.0,
"ip_rank": 42,
"h_value": 153.0,
"h_rank": 16,
"er_value": 82.0,
"er_rank": 12,
"hr_value": 23.0,
"hr_rank": 22,
"bb_value": 55.0,
"bb_rank": 26,
"k_value": 142.0,
"k_rank": 41,
"k_per_9_value": 8.3529415,
"k_per_9_rank": 26.0,
"whip_value": 1.3594,
"whip_rank": 43.0,
"war_value": -0.04,
"war_rank": 49.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9925,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9925,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.98,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9872,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0017,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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/20260913_HOU@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_KC@BOS | away | Noah Cameron | Noah Cameron | True | 6.0 | 6.0 | 0 | 4 | 1 | -3 | 3/4 | 5/1 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.929313929313929,
"WHIP": 1.2037422037422036,
"IP": 160.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.679,
"recent_avg_IP": 6.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0069,
"walk_factor": 0.968,
"homer_factor": 1.0061,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 7.6,
"woba": 0.297,
"xwoba": 0.307,
"barrel_percent": 7.7,
"hard_hit_percent": 37.7,
"whiff_percent": 26.5
},
"espn_rank": {
"rank": 76,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "702070",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.0,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 9.0,
"SO": 27.0,
"HR": 2.0,
"BF": 118.0,
"Pitches": 466.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 1.8,
"SO": 5.4,
"HR": 0.4,
"BF": 23.6,
"Pitches": 93.2
},
"rates": {
"ERA": 1.7419,
"WHIP": 0.8387,
"ER_per_IP": 0.19355,
"H_per_IP": 0.54839,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.87097,
"HR_per_IP": 0.06452
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 64.2,
"ER": 18.0,
"R": 18.0,
"H": 38.0,
"BB": 19.0,
"SO": 54.0,
"HR": 3.0,
"BF": 246.0,
"Pitches": 957.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 3.8,
"BB": 1.9,
"SO": 5.4,
"HR": 0.3,
"BF": 24.6,
"Pitches": 95.7
},
"rates": {
"ERA": 2.5052,
"WHIP": 0.8814,
"ER_per_IP": 0.27835,
"H_per_IP": 0.58763,
"BB_per_IP": 0.29381,
"SO_per_IP": 0.83505,
"HR_per_IP": 0.04639
}
},
"season": {
"games": 28,
"totals": {
"IP": 160.1,
"ER": 70.0,
"R": 75.0,
"H": 142.0,
"BB": 51.0,
"SO": 145.0,
"HR": 16.0,
"BF": 669.0,
"Pitches": 2613.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.6786,
"H": 5.0714,
"BB": 1.8214,
"SO": 5.1786,
"HR": 0.5714,
"BF": 23.8929,
"Pitches": 93.3214
},
"rates": {
"ERA": 3.9293,
"WHIP": 1.2037,
"ER_per_IP": 0.43659,
"H_per_IP": 0.88565,
"BB_per_IP": 0.31809,
"SO_per_IP": 0.90437,
"HR_per_IP": 0.09979
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.896,
"predicted_H": 4.209,
"predicted_BB": 1.902,
"predicted_SO": 5.407,
"predicted_HR": 0.479,
"predicted_ERA": 2.7663,
"predicted_WHIP": 0.9905
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.1,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.896,
"final": 2.7671,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.209,
"final": 3.7085,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.902,
"final": 3.1846,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.407,
"final": 4.4105,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.479,
"final": 0.2807,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7663,
"final": 2.7663,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9905,
"final": 0.9905,
"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": 64.2,
"ER": 18,
"H": 38,
"BB": 19,
"SO": 54,
"HR": 3,
"ERA": 2.5051546391752577,
"WHIP": 0.8814432989690721,
"K9": 7.515463917525772,
"HR9": 0.41752577319587625,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.7707243555276355,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 149,
"wins": 66,
"losses": 83,
"win_pct": 0.443,
"runs_scored": 633.0,
"runs_allowed": 724.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6107,
"avg_runs_scored": 4.2483,
"avg_runs_allowed": 4.8591,
"offense_index": 0.9458,
"defense_index": 0.9244,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.5,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1582
},
"opponent": {
"team": "BOS",
"games": 149,
"wins": 81,
"losses": 68,
"win_pct": 0.5436,
"runs_scored": 659.0,
"runs_allowed": 574.0,
"run_differential": 85.0,
"run_differential_per_game": 0.5705,
"avg_runs_scored": 4.4228,
"avg_runs_allowed": 3.8523,
"offense_index": 0.9846,
"defense_index": 1.166,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.2,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1419
},
"edges": {
"quality_edge": -0.3001,
"offense_edge": -0.0542,
"opponent_offense_edge": -0.0154,
"defense_strength": -0.0756,
"opponent_defense_weakness": -0.166,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9863,
"run_prevention": 1.0201,
"strikeout": 0.9922
},
"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": 642.0,
"k_percent": 21.7,
"bb_percent": 7.6,
"woba": 0.297,
"xwoba": 0.307,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.7428,
"avg_hyper_speed": 93.9705,
"whiff_percent": 26.5,
"swing_percent": 47.9
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.055,
"command_and_miss": 0.1357,
"regression_edge": -0.2857,
"xwoba_edge": 0.1143,
"barrel_edge": -0.1333,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.2143,
"bb_edge": 0.4,
"pitch_design_score": -0.173
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702070",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 86.75739056878514,
"release_spin_rate": 2191.8212371395343,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 86.75739056878514,
"release_spin_rate": 2191.8212371395343,
"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.7574,
"release_spin_rate": 2191.8212,
"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.173,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2356,
"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.0237,
"sample_weight": 1.0,
"run_prevention_factor": 0.998,
"strikeout_factor": 1.0069,
"walk_factor": 0.968,
"homer_factor": 1.0061,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702070",
"espn_id": 4417208,
"player_name": "Noah Cameron",
"team": "KC",
"role": "pitcher",
"espn_rank": 76,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 76,
"gp_value": 28.0,
"gp_rank": 278,
"gs_value": 27.0,
"gs_rank": 45,
"qs_value": 10.0,
"qs_rank": 59,
"era_value": 3.9293,
"era_rank": 33.0,
"w_value": 9.0,
"w_rank": 44,
"l_value": 8.0,
"l_rank": 64,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 160.1,
"ip_rank": 33,
"h_value": 142.0,
"h_rank": 33,
"er_value": 70.0,
"er_rank": 33,
"hr_value": 16.0,
"hr_rank": 87,
"bb_value": 51.0,
"bb_rank": 40,
"k_value": 145.0,
"k_rank": 38,
"k_per_9_value": 8.139293,
"k_per_9_rank": 31.0,
"whip_value": 1.2037,
"whip_rank": 29.0,
"war_value": 1.98,
"war_rank": 31.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.998,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0061,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0069,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_KC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_KC@BOS | home | Payton Tolle | Payton Tolle | True | 6.0 | 6.0 | 0 | 1 | 0 | -1 | 5/4 | 0/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.153284671532847,
"WHIP": 1.0802919708029197,
"IP": 137.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.708,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7763,
"sample_weight": 1.0,
"run_prevention_factor": 0.934,
"strikeout_factor": 1.0543,
"walk_factor": 0.95,
"homer_factor": 0.9265,
"regression_flag": "neutral",
"k_percent": 28.9,
"bb_percent": 6.7,
"woba": 0.285,
"xwoba": 0.255,
"barrel_percent": 6.6,
"hard_hit_percent": 35.0,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 52,
"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": "801139",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 10.0,
"R": 10.0,
"H": 22.0,
"BB": 8.0,
"SO": 35.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.4,
"BB": 1.6,
"SO": 7.0,
"HR": 0.4,
"BF": 23.2,
"Pitches": 94.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.0,
"ER_per_IP": 0.33333,
"H_per_IP": 0.73333,
"BB_per_IP": 0.26667,
"SO_per_IP": 1.16667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 20.0,
"R": 20.0,
"H": 49.0,
"BB": 13.0,
"SO": 79.0,
"HR": 7.0,
"BF": 225.0,
"Pitches": 889.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.9,
"BB": 1.3,
"SO": 7.9,
"HR": 0.7,
"BF": 22.5,
"Pitches": 88.9
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.0941,
"ER_per_IP": 0.35294,
"H_per_IP": 0.86471,
"BB_per_IP": 0.22941,
"SO_per_IP": 1.39412,
"HR_per_IP": 0.12353
}
},
"season": {
"games": 24,
"totals": {
"IP": 137.0,
"ER": 48.0,
"R": 52.0,
"H": 111.0,
"BB": 37.0,
"SO": 159.0,
"HR": 15.0,
"BF": 551.0,
"Pitches": 2095.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.1667,
"H": 4.625,
"BB": 1.5417,
"SO": 6.625,
"HR": 0.625,
"BF": 22.9583,
"Pitches": 87.2917
},
"rates": {
"ERA": 3.1533,
"WHIP": 1.0803,
"ER_per_IP": 0.35036,
"H_per_IP": 0.81022,
"BB_per_IP": 0.27007,
"SO_per_IP": 1.16058,
"HR_per_IP": 0.10949
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.174,
"predicted_H": 4.832,
"predicted_BB": 1.605,
"predicted_SO": 6.974,
"predicted_HR": 0.609,
"predicted_ERA": 3.345,
"predicted_WHIP": 1.1006
}
},
"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": 2.174,
"final": 1.6776,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.832,
"final": 4.903,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.605,
"final": 0.9263,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.974,
"final": 4.8708,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.609,
"final": 0.3515,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.345,
"final": 3.345,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1006,
"final": 1.1006,
"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": 20,
"H": 49,
"BB": 13,
"SO": 79,
"HR": 7,
"ERA": 3.176470588235295,
"WHIP": 1.0941176470588236,
"K9": 12.547058823529413,
"HR9": 1.1117647058823532,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.8515642584991336,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "801139",
"player_name": "Payton Tolle",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.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": 2.0,
"after": 7.0,
"delta": 5.0,
"percent_delta": 2.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 5.0,
"delta": -2.0,
"percent_delta": -0.2857,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.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": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 149,
"wins": 81,
"losses": 68,
"win_pct": 0.5436,
"runs_scored": 659.0,
"runs_allowed": 574.0,
"run_differential": 85.0,
"run_differential_per_game": 0.5705,
"avg_runs_scored": 4.4228,
"avg_runs_allowed": 3.8523,
"offense_index": 0.9846,
"defense_index": 1.166,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.2,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1419
},
"opponent": {
"team": "KC",
"games": 149,
"wins": 66,
"losses": 83,
"win_pct": 0.443,
"runs_scored": 633.0,
"runs_allowed": 724.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6107,
"avg_runs_scored": 4.2483,
"avg_runs_allowed": 4.8591,
"offense_index": 0.9458,
"defense_index": 0.9244,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.5,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1582
},
"edges": {
"quality_edge": 0.3001,
"offense_edge": -0.0154,
"opponent_offense_edge": -0.0542,
"defense_strength": 0.166,
"opponent_defense_weakness": 0.0756,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0192,
"run_prevention": 0.9597,
"strikeout": 1.0133
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "801139",
"profile": {
"available": true,
"pitcher_id": "801139",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 28.9,
"bb_percent": 6.7,
"woba": 0.285,
"xwoba": 0.255,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 35.0,
"avg_best_speed": 76.5086,
"avg_hyper_speed": 93.5883,
"whiff_percent": 27.6,
"swing_percent": 55.1
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8846,
"command_and_miss": 0.6986,
"regression_edge": 0.8571,
"xwoba_edge": 1.6,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.4143,
"whiff_edge": 0.3714,
"bb_edge": 0.625,
"pitch_design_score": 0.1694
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.87208580899367,
"release_spin_rate": 2259.8317453422737,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 92.87208580899367,
"release_spin_rate": 2259.8317453422737,
"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.8721,
"release_spin_rate": 2259.8317,
"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.1694,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2103,
"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.7763,
"sample_weight": 1.0,
"run_prevention_factor": 0.934,
"strikeout_factor": 1.0543,
"walk_factor": 0.95,
"homer_factor": 0.9265,
"woba_minus_xwoba": 0.03,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "801139",
"espn_id": 4966140,
"player_name": "Payton Tolle",
"team": "BOS",
"role": "pitcher",
"espn_rank": 52,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 52,
"gp_value": 24.0,
"gp_rank": 344,
"gs_value": 24.0,
"gs_rank": 75,
"qs_value": 12.0,
"qs_rank": 37,
"era_value": 3.1532,
"era_rank": null,
"w_value": 9.0,
"w_rank": 44,
"l_value": 6.0,
"l_rank": 114,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 137.0,
"ip_rank": 74,
"h_value": 111.0,
"h_rank": 103,
"er_value": 48.0,
"er_rank": 120,
"hr_value": 15.0,
"hr_rank": 94,
"bb_value": 37.0,
"bb_rank": 112,
"k_value": 159.0,
"k_rank": 28,
"k_per_9_value": 10.445255,
"k_per_9_rank": 10.0,
"whip_value": 1.0802,
"whip_rank": null,
"war_value": 2.57,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.934,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.934,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.95,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9265,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0543,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260913_KC@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_LAA@WAS | away | Grayson Rodriguez | Grayson Rodriguez | True | 4.2 | 5.1 | 2 | 3 | 2 | -1 | 7/7 | 1/1 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.281632653061224,
"WHIP": 1.5673469387755101,
"IP": 81.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.804,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.628,
"sample_weight": 1.0,
"run_prevention_factor": 1.0534,
"strikeout_factor": 0.9829,
"walk_factor": 1.016,
"homer_factor": 1.1304,
"regression_flag": "neutral",
"k_percent": 20.3,
"bb_percent": 10.0,
"woba": 0.368,
"xwoba": 0.36,
"barrel_percent": 9.5,
"hard_hit_percent": 46.0,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 849,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680570",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 13.0,
"R": 15.0,
"H": 28.0,
"BB": 11.0,
"SO": 25.0,
"HR": 5.0,
"BF": 116.0,
"Pitches": 464.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 3.0,
"H": 5.6,
"BB": 2.2,
"SO": 5.0,
"HR": 1.0,
"BF": 23.2,
"Pitches": 92.8
},
"rates": {
"ERA": 4.3875,
"WHIP": 1.4625,
"ER_per_IP": 0.4875,
"H_per_IP": 1.05,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 31.0,
"R": 34.0,
"H": 53.0,
"BB": 21.0,
"SO": 51.0,
"HR": 10.0,
"BF": 224.0,
"Pitches": 910.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.4,
"H": 5.3,
"BB": 2.1,
"SO": 5.1,
"HR": 1.0,
"BF": 22.4,
"Pitches": 91.0
},
"rates": {
"ERA": 5.5066,
"WHIP": 1.4605,
"ER_per_IP": 0.61184,
"H_per_IP": 1.04605,
"BB_per_IP": 0.41447,
"SO_per_IP": 1.00658,
"HR_per_IP": 0.19737
}
},
"season": {
"games": 17,
"totals": {
"IP": 81.2,
"ER": 57.0,
"R": 62.0,
"H": 91.0,
"BB": 37.0,
"SO": 75.0,
"HR": 14.0,
"BF": 370.0,
"Pitches": 1483.0
},
"per_game": {
"IP": 4.2,
"ER": 3.3529,
"R": 3.6471,
"H": 5.3529,
"BB": 2.1765,
"SO": 4.4118,
"HR": 0.8235,
"BF": 21.7647,
"Pitches": 87.2353
},
"rates": {
"ERA": 6.2816,
"WHIP": 1.5673,
"ER_per_IP": 0.69796,
"H_per_IP": 1.11429,
"BB_per_IP": 0.45306,
"SO_per_IP": 0.91837,
"HR_per_IP": 0.17143
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.822,
"predicted_H": 5.273,
"predicted_BB": 2.075,
"predicted_SO": 4.832,
"predicted_HR": 0.903,
"predicted_ERA": 5.0152,
"predicted_WHIP": 1.451
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.822,
"final": 2.4554,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.273,
"final": 6.0433,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.075,
"final": 1.5955,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.832,
"final": 5.353,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.903,
"final": 0.9463,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0152,
"final": 5.0152,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.451,
"final": 1.451,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 31,
"H": 53,
"BB": 21,
"SO": 51,
"HR": 10,
"ERA": 5.50657894736842,
"WHIP": 1.4605263157894735,
"K9": 9.05921052631579,
"HR9": 1.776315789473684,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.125939833989897,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
},
{
"step": "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": 7,
"predicted_BB": 1,
"predicted_SO": 6,
"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": 7,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680570",
"player_name": "Grayson Rodriguez",
"position": "Starter",
"team": "LAA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"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": {
"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": "LAA",
"games": 147,
"wins": 56,
"losses": 91,
"win_pct": 0.381,
"runs_scored": 594.0,
"runs_allowed": 668.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 4.0408,
"avg_runs_allowed": 4.5442,
"offense_index": 0.8976,
"defense_index": 0.9906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1977
},
"opponent": {
"team": "WAS",
"games": 149,
"wins": 68,
"losses": 81,
"win_pct": 0.4564,
"runs_scored": 760.0,
"runs_allowed": 759.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0067,
"avg_runs_scored": 5.1007,
"avg_runs_allowed": 5.094,
"offense_index": 1.133,
"defense_index": 0.8837,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1062
},
"edges": {
"quality_edge": -0.0915,
"offense_edge": -0.1024,
"opponent_offense_edge": 0.133,
"defense_strength": -0.0094,
"opponent_defense_weakness": 0.1163,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9907,
"run_prevention": 1.0268,
"strikeout": 0.9866
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680570",
"profile": {
"available": true,
"pitcher_id": "680570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 336.0,
"k_percent": 20.3,
"bb_percent": 10.0,
"woba": 0.368,
"xwoba": 0.36,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 46.0,
"avg_best_speed": 79.9547,
"avg_hyper_speed": 95.0066,
"whiff_percent": 23.7,
"swing_percent": 48.9
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.0648,
"command_and_miss": -0.2143,
"regression_edge": 0.2286,
"xwoba_edge": -1.4,
"barrel_edge": -0.5333,
"hard_hit_edge": -1.1429,
"whiff_edge": -0.1857,
"bb_edge": -0.2,
"pitch_design_score": 0.0147
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.11130405957836,
"release_spin_rate": 2182.2281026688293,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 90.11130405957836,
"release_spin_rate": 2182.2281026688293,
"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.1113,
"release_spin_rate": 2182.2281,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0147,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1049,
"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.628,
"sample_weight": 1.0,
"run_prevention_factor": 1.0534,
"strikeout_factor": 0.9829,
"walk_factor": 1.016,
"homer_factor": 1.1304,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680570",
"espn_id": 41196,
"player_name": "Grayson Rodriguez",
"team": "LAA",
"role": "pitcher",
"espn_rank": 849,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 849,
"gp_value": 17.0,
"gp_rank": 437,
"gs_value": 17.0,
"gs_rank": 124,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 6.2816,
"era_rank": null,
"w_value": 4.0,
"w_rank": 190,
"l_value": 7.0,
"l_rank": 85,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 81.2,
"ip_rank": 159,
"h_value": 91.0,
"h_rank": 127,
"er_value": 57.0,
"er_rank": 77,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 37.0,
"bb_rank": 110,
"k_value": 75.0,
"k_rank": 164,
"k_per_9_value": 8.265306,
"k_per_9_rank": 27.0,
"whip_value": 1.5673,
"whip_rank": null,
"war_value": -1.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0534,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0534,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.016,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1304,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9829,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260913_LAA@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"
}
} |
| 20260913 | 20260913_LAA@WAS | home | Riley Cornelio | Riley Cornelio | True | 4.0 | 2.0 | -6 | 2 | 0 | -2 | 5/1 | 3/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.259740259740259,
"WHIP": 1.5974025974025974,
"IP": 25.2,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 3.0,
"recent_avg_IP": 3.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0029,
"sample_weight": 0.45,
"run_prevention_factor": 0.9998,
"strikeout_factor": 1.0265,
"walk_factor": 1.0801,
"homer_factor": 1.0391,
"regression_flag": "neutral",
"k_percent": 23.3,
"bb_percent": 18.1,
"woba": 0.312,
"xwoba": 0.307,
"barrel_percent": 8.8,
"hard_hit_percent": 48.5,
"whiff_percent": 34.0
},
"espn_rank": {
"rank": 769,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.179,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5088,
"prior_weight": 0.4912
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683000",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.1,
"ER": 4.0,
"R": 8.0,
"H": 4.0,
"BB": 6.0,
"SO": 10.0,
"HR": 1.0,
"BF": 38.0,
"Pitches": 166.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8,
"R": 1.6,
"H": 0.8,
"BB": 1.2,
"SO": 2.0,
"HR": 0.2,
"BF": 7.6,
"Pitches": 33.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.0714,
"ER_per_IP": 0.42857,
"H_per_IP": 0.42857,
"BB_per_IP": 0.64286,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 17.1,
"ER": 9.0,
"R": 13.0,
"H": 13.0,
"BB": 12.0,
"SO": 23.0,
"HR": 2.0,
"BF": 76.0,
"Pitches": 334.0
},
"per_game": {
"IP": 1.2,
"ER": 0.9,
"R": 1.3,
"H": 1.3,
"BB": 1.2,
"SO": 2.3,
"HR": 0.2,
"BF": 7.6,
"Pitches": 33.4
},
"rates": {
"ERA": 4.6731,
"WHIP": 1.4423,
"ER_per_IP": 0.51923,
"H_per_IP": 0.75,
"BB_per_IP": 0.69231,
"SO_per_IP": 1.32692,
"HR_per_IP": 0.11538
}
},
"season": {
"games": 13,
"totals": {
"IP": 25.2,
"ER": 15.0,
"R": 20.0,
"H": 20.0,
"BB": 21.0,
"SO": 27.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 493.0
},
"per_game": {
"IP": 2.0,
"ER": 1.1538,
"R": 1.5385,
"H": 1.5385,
"BB": 1.6154,
"SO": 2.0769,
"HR": 0.1538,
"BF": 8.9231,
"Pitches": 37.9231
},
"rates": {
"ERA": 5.2597,
"WHIP": 1.5974,
"ER_per_IP": 0.58442,
"H_per_IP": 0.77922,
"BB_per_IP": 0.81818,
"SO_per_IP": 1.05195,
"HR_per_IP": 0.07792
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.616,
"predicted_H": 2.564,
"predicted_BB": 1.742,
"predicted_SO": 3.416,
"predicted_HR": 0.405,
"predicted_ERA": 4.4756,
"predicted_WHIP": 1.3245
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5575,
"form_weight": 0.4425,
"form_reliability": 0.5088,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.179,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5088,
"prior_weight": 0.4912
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.616,
"final": 1.8301,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.564,
"final": 3.9221,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.742,
"final": 2.4434,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.416,
"final": 3.7416,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.405,
"final": 0.7367,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4756,
"final": 4.4756,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3245,
"final": 1.3245,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 17.1,
"ER": 9,
"H": 13,
"BB": 12,
"SO": 23,
"HR": 2,
"ERA": 4.673076923076923,
"WHIP": 1.4423076923076925,
"K9": 11.942307692307693,
"HR9": 1.0384615384615385,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.0180395503295179,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.179,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5088,
"prior_weight": 0.4912
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683000",
"player_name": "Riley Cornelio",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 149,
"wins": 68,
"losses": 81,
"win_pct": 0.4564,
"runs_scored": 760.0,
"runs_allowed": 759.0,
"run_differential": 1.0,
"run_differential_per_game": 0.0067,
"avg_runs_scored": 5.1007,
"avg_runs_allowed": 5.094,
"offense_index": 1.133,
"defense_index": 0.8837,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.5,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1062
},
"opponent": {
"team": "LAA",
"games": 147,
"wins": 56,
"losses": 91,
"win_pct": 0.381,
"runs_scored": 594.0,
"runs_allowed": 668.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 4.0408,
"avg_runs_allowed": 4.5442,
"offense_index": 0.8976,
"defense_index": 0.9906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1977
},
"edges": {
"quality_edge": 0.0915,
"offense_edge": 0.133,
"opponent_offense_edge": -0.1024,
"defense_strength": -0.1163,
"opponent_defense_weakness": 0.0094,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0043,
"run_prevention": 0.9907,
"strikeout": 1.0109
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683000",
"profile": {
"available": true,
"pitcher_id": "683000",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 105.0,
"k_percent": 23.3,
"bb_percent": 18.1,
"woba": 0.312,
"xwoba": 0.307,
"sweet_spot_percent": 29.4,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 48.5,
"avg_best_speed": 76.3399,
"avg_hyper_speed": 94.4218,
"whiff_percent": 34.0,
"swing_percent": 48.3
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0564,
"command_and_miss": 0.0886,
"regression_edge": 0.1429,
"xwoba_edge": 0.1143,
"barrel_edge": -0.3778,
"hard_hit_edge": -1.5,
"whiff_edge": 1.2857,
"bb_edge": -2.225,
"pitch_design_score": 0.0099
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683000",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 32,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 32,
"pitch_usage": 0.0,
"release_speed": 90.02548337497221,
"release_spin_rate": 2315.443447421638,
"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": 32,
"pitch_usage": 0.0,
"release_speed": 90.02548337497221,
"release_spin_rate": 2315.443447421638,
"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.0255,
"release_spin_rate": 2315.4434,
"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.0099,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0706,
"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.0029,
"sample_weight": 0.45,
"run_prevention_factor": 0.9998,
"strikeout_factor": 1.0265,
"walk_factor": 1.0801,
"homer_factor": 1.0391,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683000",
"espn_id": 4622146,
"player_name": "Riley Cornelio",
"team": "WSH",
"role": "pitcher",
"espn_rank": 769,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 769,
"gp_value": 13.0,
"gp_rank": 488,
"gs_value": 1.0,
"gs_rank": 297,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 5.2597,
"era_rank": null,
"w_value": 2.0,
"w_rank": 316,
"l_value": 2.0,
"l_rank": 330,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 25.2,
"ip_rank": 474,
"h_value": 20.0,
"h_rank": 518,
"er_value": 15.0,
"er_rank": 426,
"hr_value": 2.0,
"hr_rank": 528,
"bb_value": 21.0,
"bb_rank": 282,
"k_value": 27.0,
"k_rank": 437,
"k_per_9_value": 9.467532,
"k_per_9_rank": 24.0,
"whip_value": 1.5974,
"whip_rank": null,
"war_value": -0.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9999,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9999,
"adjusted": 0
},
"predicted_BB": {
"original": 0.0,
"factor": 1.036,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0176,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0119,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 89,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260913_LAA@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"
}
} |
| 20260913 | 20260913_LAD@MIA | away | Emmet Sheehan | Emmet Sheehan | True | 4.2 | 6.0 | 4 | 2 | 0 | -2 | 1/2 | 1/1 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.079207920792079,
"WHIP": 1.2574257425742574,
"IP": 101.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 4.81,
"recent_avg_IP": 4.8,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1698,
"sample_weight": 1.0,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0669,
"walk_factor": 0.96,
"homer_factor": 1.0639,
"regression_flag": "positive_pitcher_regression",
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.339,
"xwoba": 0.305,
"barrel_percent": 10.5,
"hard_hit_percent": 39.5,
"whiff_percent": 31.4
},
"espn_rank": {
"rank": 444,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686218",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 15.0,
"R": 16.0,
"H": 23.0,
"BB": 6.0,
"SO": 32.0,
"HR": 6.0,
"BF": 104.0,
"Pitches": 415.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 4.6,
"BB": 1.2,
"SO": 6.4,
"HR": 1.2,
"BF": 20.8,
"Pitches": 83.0
},
"rates": {
"ERA": 5.625,
"WHIP": 1.2083,
"ER_per_IP": 0.625,
"H_per_IP": 0.95833,
"BB_per_IP": 0.25,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.0,
"ER": 28.0,
"R": 29.0,
"H": 43.0,
"BB": 17.0,
"SO": 56.0,
"HR": 10.0,
"BF": 194.0,
"Pitches": 811.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 2.9,
"H": 4.3,
"BB": 1.7,
"SO": 5.6,
"HR": 1.0,
"BF": 19.4,
"Pitches": 81.1
},
"rates": {
"ERA": 5.8605,
"WHIP": 1.3953,
"ER_per_IP": 0.65116,
"H_per_IP": 1.0,
"BB_per_IP": 0.39535,
"SO_per_IP": 1.30233,
"HR_per_IP": 0.23256
}
},
"season": {
"games": 21,
"totals": {
"IP": 101.0,
"ER": 57.0,
"R": 58.0,
"H": 96.0,
"BB": 31.0,
"SO": 118.0,
"HR": 21.0,
"BF": 433.0,
"Pitches": 1780.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7143,
"R": 2.7619,
"H": 4.5714,
"BB": 1.4762,
"SO": 5.619,
"HR": 1.0,
"BF": 20.619,
"Pitches": 84.7619
},
"rates": {
"ERA": 5.0792,
"WHIP": 1.2574,
"ER_per_IP": 0.56436,
"H_per_IP": 0.9505,
"BB_per_IP": 0.30693,
"SO_per_IP": 1.16832,
"HR_per_IP": 0.20792
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.74,
"predicted_H": 4.443,
"predicted_BB": 1.479,
"predicted_SO": 5.59,
"predicted_HR": 0.998,
"predicted_ERA": 5.3928,
"predicted_WHIP": 1.295
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.74,
"final": 2.4209,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.443,
"final": 2.9582,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.479,
"final": 1.2724,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.59,
"final": 4.0418,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.998,
"final": 0.9989,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3928,
"final": 5.3928,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.295,
"final": 1.295,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 28,
"H": 43,
"BB": 17,
"SO": 56,
"HR": 10,
"ERA": 5.8604651162790695,
"WHIP": 1.3953488372093024,
"K9": 11.720930232558139,
"HR9": 2.0930232558139537,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.1641225910278408,
"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": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686218",
"player_name": "Emmet Sheehan",
"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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.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": 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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.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": "LAD",
"games": 147,
"wins": 90,
"losses": 57,
"win_pct": 0.6122,
"runs_scored": 734.0,
"runs_allowed": 561.0,
"run_differential": 173.0,
"run_differential_per_game": 1.1769,
"avg_runs_scored": 4.9932,
"avg_runs_allowed": 3.8163,
"offense_index": 1.1092,
"defense_index": 1.1796,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.4,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.3442
},
"opponent": {
"team": "MIA",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 656.0,
"runs_allowed": 653.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0203,
"avg_runs_scored": 4.4324,
"avg_runs_allowed": 4.4122,
"offense_index": 0.9846,
"defense_index": 1.0203,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 6.8,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.079
},
"edges": {
"quality_edge": 0.4232,
"offense_edge": 0.1092,
"opponent_offense_edge": -0.0154,
"defense_strength": 0.1796,
"opponent_defense_weakness": -0.0203,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0229,
"run_prevention": 0.9584,
"strikeout": 1.0139
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686218",
"profile": {
"available": true,
"pitcher_id": "686218",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 410.0,
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.339,
"xwoba": 0.305,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 39.5,
"avg_best_speed": 78.3448,
"avg_hyper_speed": 94.0854,
"whiff_percent": 31.4,
"swing_percent": 50.3
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2149,
"command_and_miss": 0.7607,
"regression_edge": 0.9714,
"xwoba_edge": 0.1714,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.9143,
"bb_edge": 0.5,
"pitch_design_score": -0.0596
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686218",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.78381887982496,
"release_spin_rate": 2261.1723939672893,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.78381887982496,
"release_spin_rate": 2261.1723939672893,
"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.7838,
"release_spin_rate": 2261.1724,
"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.0596,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4261,
"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.1698,
"sample_weight": 1.0,
"run_prevention_factor": 0.9856,
"strikeout_factor": 1.0669,
"walk_factor": 0.96,
"homer_factor": 1.0639,
"woba_minus_xwoba": 0.034,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "686218",
"espn_id": 4417806,
"player_name": "Emmet Sheehan",
"team": "LAD",
"role": "pitcher",
"espn_rank": 444,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 444,
"gp_value": 21.0,
"gp_rank": 380,
"gs_value": 21.0,
"gs_rank": 94,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 5.0792,
"era_rank": null,
"w_value": 5.0,
"w_rank": 149,
"l_value": 8.0,
"l_rank": 62,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 101.0,
"ip_rank": 125,
"h_value": 96.0,
"h_rank": 122,
"er_value": 57.0,
"er_rank": 77,
"hr_value": 21.0,
"hr_rank": 32,
"bb_value": 31.0,
"bb_rank": 159,
"k_value": 118.0,
"k_rank": 75,
"k_per_9_value": 10.514852,
"k_per_9_rank": 16.0,
"whip_value": 1.2574,
"whip_rank": null,
"war_value": 0.04,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9856,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9856,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.96,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0639,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0669,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_LAD@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_LAD@MIA | home | Eury Pérez | Eury Pérez | True | 5.0 | 5.0 | 0 | 3 | 3 | 0 | 4/4 | 2/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9401913875598082,
"WHIP": 1.2416267942583732,
"IP": 139.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.359,
"recent_avg_IP": 4.533,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0541,
"sample_weight": 1.0,
"run_prevention_factor": 0.9954,
"strikeout_factor": 1.0434,
"walk_factor": 1.03,
"homer_factor": 1.0634,
"regression_flag": "neutral",
"k_percent": 25.8,
"bb_percent": 10.7,
"woba": 0.308,
"xwoba": 0.312,
"barrel_percent": 10.2,
"hard_hit_percent": 39.3,
"whiff_percent": 28.8
},
"espn_rank": {
"rank": 148,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691587",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 17.0,
"R": 20.0,
"H": 26.0,
"BB": 18.0,
"SO": 22.0,
"HR": 4.0,
"BF": 110.0,
"Pitches": 468.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 4.0,
"H": 5.2,
"BB": 3.6,
"SO": 4.4,
"HR": 0.8,
"BF": 22.0,
"Pitches": 93.6
},
"rates": {
"ERA": 6.75,
"WHIP": 1.9412,
"ER_per_IP": 0.75,
"H_per_IP": 1.14706,
"BB_per_IP": 0.79412,
"SO_per_IP": 0.97059,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 25.0,
"R": 29.0,
"H": 47.0,
"BB": 28.0,
"SO": 55.0,
"HR": 4.0,
"BF": 232.0,
"Pitches": 953.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.9,
"H": 4.7,
"BB": 2.8,
"SO": 5.5,
"HR": 0.4,
"BF": 23.2,
"Pitches": 95.3
},
"rates": {
"ERA": 4.1925,
"WHIP": 1.3975,
"ER_per_IP": 0.46584,
"H_per_IP": 0.87578,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.02484,
"HR_per_IP": 0.07453
}
},
"season": {
"games": 26,
"totals": {
"IP": 139.1,
"ER": 61.0,
"R": 69.0,
"H": 111.0,
"BB": 62.0,
"SO": 150.0,
"HR": 17.0,
"BF": 581.0,
"Pitches": 2361.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3462,
"R": 2.6538,
"H": 4.2692,
"BB": 2.3846,
"SO": 5.7692,
"HR": 0.6538,
"BF": 22.3462,
"Pitches": 90.8077
},
"rates": {
"ERA": 3.9402,
"WHIP": 1.2416,
"ER_per_IP": 0.4378,
"H_per_IP": 0.79665,
"BB_per_IP": 0.44498,
"SO_per_IP": 1.07656,
"HR_per_IP": 0.12201
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.888,
"predicted_H": 4.93,
"predicted_BB": 2.953,
"predicted_SO": 5.026,
"predicted_HR": 0.666,
"predicted_ERA": 5.1698,
"predicted_WHIP": 1.5678
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.888,
"final": 3.353,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.93,
"final": 4.5411,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.953,
"final": 2.5545,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.026,
"final": 5.4333,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.666,
"final": 0.8057,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1698,
"final": 5.1698,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5678,
"final": 1.5678,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 25,
"H": 47,
"BB": 28,
"SO": 55,
"HR": 4,
"ERA": 4.192546583850931,
"WHIP": 1.3975155279503104,
"K9": 9.22360248447205,
"HR9": 0.670807453416149,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.9765359233982003,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691587",
"player_name": "Eury P\u00e9rez",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 656.0,
"runs_allowed": 653.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0203,
"avg_runs_scored": 4.4324,
"avg_runs_allowed": 4.4122,
"offense_index": 0.9846,
"defense_index": 1.0203,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 6.8,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.079
},
"opponent": {
"team": "LAD",
"games": 147,
"wins": 90,
"losses": 57,
"win_pct": 0.6122,
"runs_scored": 734.0,
"runs_allowed": 561.0,
"run_differential": 173.0,
"run_differential_per_game": 1.1769,
"avg_runs_scored": 4.9932,
"avg_runs_allowed": 3.8163,
"offense_index": 1.1092,
"defense_index": 1.1796,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 4.4,
"run_differential": 20.0
},
"available": true,
"quality_score": 0.3442
},
"edges": {
"quality_edge": -0.4232,
"offense_edge": -0.0154,
"opponent_offense_edge": 0.1092,
"defense_strength": 0.0203,
"opponent_defense_weakness": -0.1796,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9793,
"run_prevention": 1.0366,
"strikeout": 0.9786
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691587",
"profile": {
"available": true,
"pitcher_id": "691587",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 556.0,
"k_percent": 25.8,
"bb_percent": 10.7,
"woba": 0.308,
"xwoba": 0.312,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 39.3,
"avg_best_speed": 76.9338,
"avg_hyper_speed": 94.2717,
"whiff_percent": 28.8,
"swing_percent": 51.0
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0737,
"command_and_miss": 0.3593,
"regression_edge": -0.1143,
"xwoba_edge": -0.0286,
"barrel_edge": -0.6889,
"hard_hit_edge": -0.1857,
"whiff_edge": 0.5429,
"bb_edge": -0.375,
"pitch_design_score": 0.1681
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691587",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 92.85070506168456,
"release_spin_rate": 2525.525727617243,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 92.85070506168456,
"release_spin_rate": 2525.525727617243,
"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.8507,
"release_spin_rate": 2525.5257,
"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.1681,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2007,
"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.0541,
"sample_weight": 1.0,
"run_prevention_factor": 0.9954,
"strikeout_factor": 1.0434,
"walk_factor": 1.03,
"homer_factor": 1.0634,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691587",
"espn_id": 4917854,
"player_name": "Eury Perez",
"team": "MIA",
"role": "pitcher",
"espn_rank": 148,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 148,
"gp_value": 26.0,
"gp_rank": 310,
"gs_value": 26.0,
"gs_rank": 56,
"qs_value": 11.0,
"qs_rank": 46,
"era_value": 3.9401,
"era_rank": null,
"w_value": 7.0,
"w_rank": 86,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 139.1,
"ip_rank": 62,
"h_value": 111.0,
"h_rank": 99,
"er_value": 61.0,
"er_rank": 65,
"hr_value": 17.0,
"hr_rank": 71,
"bb_value": 62.0,
"bb_rank": 15,
"k_value": 150.0,
"k_rank": 31,
"k_per_9_value": 9.688995,
"k_per_9_rank": 13.0,
"whip_value": 1.2416,
"whip_rank": null,
"war_value": 1.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9954,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9954,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.03,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0634,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0434,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"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/20260913_LAD@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_NYM@NYY | away | Christian Scott | Christian Scott | True | 5.0 | 6.0 | 3 | 2 | 2 | 0 | 4/3 | 4/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8053691275167787,
"WHIP": 1.2885906040268458,
"IP": 99.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 4.73,
"recent_avg_IP": 5.0,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2267,
"sample_weight": 1.0,
"run_prevention_factor": 0.9807,
"strikeout_factor": 1.0411,
"walk_factor": 1.02,
"homer_factor": 0.9597,
"regression_flag": "neutral",
"k_percent": 27.8,
"bb_percent": 10.2,
"woba": 0.301,
"xwoba": 0.303,
"barrel_percent": 6.6,
"hard_hit_percent": 33.7,
"whiff_percent": 26.4
},
"espn_rank": {
"rank": 95,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681035",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 16.0,
"R": 16.0,
"H": 22.0,
"BB": 12.0,
"SO": 28.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 4.4,
"BB": 2.4,
"SO": 5.6,
"HR": 0.6,
"BF": 22.4,
"Pitches": 88.4
},
"rates": {
"ERA": 5.76,
"WHIP": 1.36,
"ER_per_IP": 0.64,
"H_per_IP": 0.88,
"BB_per_IP": 0.48,
"SO_per_IP": 1.12,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 23.0,
"R": 23.0,
"H": 43.0,
"BB": 19.0,
"SO": 60.0,
"HR": 3.0,
"BF": 217.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.3,
"H": 4.3,
"BB": 1.9,
"SO": 6.0,
"HR": 0.3,
"BF": 21.7,
"Pitches": 89.4
},
"rates": {
"ERA": 4.1126,
"WHIP": 1.2318,
"ER_per_IP": 0.45695,
"H_per_IP": 0.8543,
"BB_per_IP": 0.37748,
"SO_per_IP": 1.19205,
"HR_per_IP": 0.0596
}
},
"season": {
"games": 21,
"totals": {
"IP": 99.1,
"ER": 42.0,
"R": 43.0,
"H": 84.0,
"BB": 44.0,
"SO": 120.0,
"HR": 10.0,
"BF": 431.0,
"Pitches": 1803.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0476,
"H": 4.0,
"BB": 2.0952,
"SO": 5.7143,
"HR": 0.4762,
"BF": 20.5238,
"Pitches": 85.8571
},
"rates": {
"ERA": 3.8054,
"WHIP": 1.2886,
"ER_per_IP": 0.42282,
"H_per_IP": 0.84564,
"BB_per_IP": 0.44295,
"SO_per_IP": 1.20805,
"HR_per_IP": 0.10067
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.606,
"predicted_H": 4.377,
"predicted_BB": 2.097,
"predicted_SO": 5.541,
"predicted_HR": 0.518,
"predicted_ERA": 4.742,
"predicted_WHIP": 1.309
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.606,
"final": 2.3447,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.377,
"final": 4.2144,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.097,
"final": 2.9177,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.541,
"final": 4.8764,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.518,
"final": 1.1571,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.742,
"final": 4.742,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.309,
"final": 1.309,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 23,
"H": 43,
"BB": 19,
"SO": 60,
"HR": 3,
"ERA": 4.112582781456954,
"WHIP": 1.2317880794701987,
"K9": 10.728476821192054,
"HR9": 0.5364238410596027,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9633968094168751,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681035",
"player_name": "Christian Scott",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": "NYM",
"games": 147,
"wins": 68,
"losses": 79,
"win_pct": 0.4626,
"runs_scored": 631.0,
"runs_allowed": 673.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2857,
"avg_runs_scored": 4.2925,
"avg_runs_allowed": 4.5782,
"offense_index": 0.9535,
"defense_index": 0.9833,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 5.8,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0033
},
"opponent": {
"team": "NYY",
"games": 147,
"wins": 85,
"losses": 62,
"win_pct": 0.5782,
"runs_scored": 673.0,
"runs_allowed": 540.0,
"run_differential": 133.0,
"run_differential_per_game": 0.9048,
"avg_runs_scored": 4.5782,
"avg_runs_allowed": 3.6735,
"offense_index": 1.017,
"defense_index": 1.2255,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.5,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.247
},
"edges": {
"quality_edge": -0.2437,
"offense_edge": -0.0465,
"opponent_offense_edge": 0.017,
"defense_strength": -0.0167,
"opponent_defense_weakness": -0.2255,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9891,
"run_prevention": 1.0166,
"strikeout": 0.9913
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681035",
"profile": {
"available": true,
"pitcher_id": "681035",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 412.0,
"k_percent": 27.8,
"bb_percent": 10.2,
"woba": 0.301,
"xwoba": 0.303,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 33.7,
"avg_best_speed": 74.9098,
"avg_hyper_speed": 93.0511,
"whiff_percent": 26.4,
"swing_percent": 49.5
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2318,
"command_and_miss": 0.3929,
"regression_edge": -0.0571,
"xwoba_edge": 0.2286,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.6143,
"whiff_edge": 0.2,
"bb_edge": -0.25,
"pitch_design_score": 0.0053
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681035",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.94413526757182,
"release_spin_rate": 2352.398884615273,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.94413526757182,
"release_spin_rate": 2352.398884615273,
"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.9441,
"release_spin_rate": 2352.3989,
"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.0053,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0381,
"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.2267,
"sample_weight": 1.0,
"run_prevention_factor": 0.9807,
"strikeout_factor": 1.0411,
"walk_factor": 1.02,
"homer_factor": 0.9597,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681035",
"espn_id": 4414215,
"player_name": "Christian Scott",
"team": "NYM",
"role": "pitcher",
"espn_rank": 95,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 95,
"gp_value": 21.0,
"gp_rank": 380,
"gs_value": 21.0,
"gs_rank": 94,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 3.8053,
"era_rank": null,
"w_value": 4.0,
"w_rank": 190,
"l_value": 4.0,
"l_rank": 189,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 99.1,
"ip_rank": 127,
"h_value": 84.0,
"h_rank": 140,
"er_value": 42.0,
"er_rank": 146,
"hr_value": 10.0,
"hr_rank": 162,
"bb_value": 44.0,
"bb_rank": 67,
"k_value": 120.0,
"k_rank": 71,
"k_per_9_value": 10.872483,
"k_per_9_rank": 15.0,
"whip_value": 1.2885,
"whip_rank": null,
"war_value": 1.72,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9807,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 0.9807,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9597,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0411,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260913_NYM@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"
}
} |
| 20260913 | 20260913_NYM@NYY | home | Cam Schlittler | Cam Schlittler | True | 6.1 | 6.0 | -1 | 1 | 0 | -1 | 6/1 | 1/2 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.0149253731343286,
"WHIP": 0.9179104477611941,
"IP": 178.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.956,
"recent_avg_IP": 6.4,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6606,
"sample_weight": 1.0,
"run_prevention_factor": 0.9438,
"strikeout_factor": 1.076,
"walk_factor": 0.936,
"homer_factor": 0.9845,
"regression_flag": "neutral",
"k_percent": 31.4,
"bb_percent": 6.0,
"woba": 0.246,
"xwoba": 0.265,
"barrel_percent": 7.9,
"hard_hit_percent": 39.7,
"whiff_percent": 28.9
},
"espn_rank": {
"rank": 2,
"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": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693645",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 4.0,
"R": 4.0,
"H": 17.0,
"BB": 11.0,
"SO": 38.0,
"HR": 2.0,
"BF": 122.0,
"Pitches": 490.0
},
"per_game": {
"IP": 6.1,
"ER": 0.8,
"R": 0.8,
"H": 3.4,
"BB": 2.2,
"SO": 7.6,
"HR": 0.4,
"BF": 24.4,
"Pitches": 98.0
},
"rates": {
"ERA": 1.125,
"WHIP": 0.875,
"ER_per_IP": 0.125,
"H_per_IP": 0.53125,
"BB_per_IP": 0.34375,
"SO_per_IP": 1.1875,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 13.0,
"R": 13.0,
"H": 35.0,
"BB": 17.0,
"SO": 83.0,
"HR": 4.0,
"BF": 232.0,
"Pitches": 959.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.3,
"H": 3.5,
"BB": 1.7,
"SO": 8.3,
"HR": 0.4,
"BF": 23.2,
"Pitches": 95.9
},
"rates": {
"ERA": 1.95,
"WHIP": 0.8667,
"ER_per_IP": 0.21667,
"H_per_IP": 0.58333,
"BB_per_IP": 0.28333,
"SO_per_IP": 1.38333,
"HR_per_IP": 0.06667
}
},
"season": {
"games": 30,
"totals": {
"IP": 178.2,
"ER": 40.0,
"R": 47.0,
"H": 122.0,
"BB": 42.0,
"SO": 220.0,
"HR": 16.0,
"BF": 701.0,
"Pitches": 2779.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3333,
"R": 1.5667,
"H": 4.0667,
"BB": 1.4,
"SO": 7.3333,
"HR": 0.5333,
"BF": 23.3667,
"Pitches": 92.6333
},
"rates": {
"ERA": 2.0149,
"WHIP": 0.9179,
"ER_per_IP": 0.22388,
"H_per_IP": 0.68284,
"BB_per_IP": 0.23507,
"SO_per_IP": 1.23134,
"HR_per_IP": 0.08955
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.38,
"predicted_H": 3.928,
"predicted_BB": 1.92,
"predicted_SO": 7.526,
"predicted_HR": 0.496,
"predicted_ERA": 2.0116,
"predicted_WHIP": 0.9468
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.38,
"final": 1.6344,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 3.928,
"final": 4.7783,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.92,
"final": 1.5425,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 7.526,
"final": 6.4894,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.496,
"final": 0.2925,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.0116,
"final": 2.0116,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9468,
"final": 0.9468,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 13,
"H": 35,
"BB": 17,
"SO": 83,
"HR": 4,
"ERA": 1.95,
"WHIP": 0.8666666666666667,
"K9": 12.45,
"HR9": 0.6,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.7109782111828795,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693645",
"player_name": "Cam Schlittler",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.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": "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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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": 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.1,
"after": 6.1,
"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": 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": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.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": "NYY",
"games": 147,
"wins": 85,
"losses": 62,
"win_pct": 0.5782,
"runs_scored": 673.0,
"runs_allowed": 540.0,
"run_differential": 133.0,
"run_differential_per_game": 0.9048,
"avg_runs_scored": 4.5782,
"avg_runs_allowed": 3.6735,
"offense_index": 1.017,
"defense_index": 1.2255,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 3.5,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.247
},
"opponent": {
"team": "NYM",
"games": 147,
"wins": 68,
"losses": 79,
"win_pct": 0.4626,
"runs_scored": 631.0,
"runs_allowed": 673.0,
"run_differential": -42.0,
"run_differential_per_game": -0.2857,
"avg_runs_scored": 4.2925,
"avg_runs_allowed": 4.5782,
"offense_index": 0.9535,
"defense_index": 0.9833,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.9,
"avg_runs_allowed": 5.8,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0033
},
"edges": {
"quality_edge": 0.2437,
"offense_edge": 0.017,
"opponent_offense_edge": -0.0465,
"defense_strength": 0.2255,
"opponent_defense_weakness": 0.0167,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0184,
"run_prevention": 0.9578,
"strikeout": 1.011
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693645",
"profile": {
"available": true,
"pitcher_id": "693645",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 646.0,
"k_percent": 31.4,
"bb_percent": 6.0,
"woba": 0.246,
"xwoba": 0.265,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.7421,
"avg_hyper_speed": 93.8635,
"whiff_percent": 28.9,
"swing_percent": 52.2
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7913,
"command_and_miss": 0.9593,
"regression_edge": -0.5429,
"xwoba_edge": 1.3143,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.2429,
"whiff_edge": 0.5571,
"bb_edge": 0.8,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693645",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 95.86048713350452,
"release_spin_rate": 2509.53670007982,
"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": 95.86048713350452,
"release_spin_rate": 2509.53670007982,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 95.8605,
"release_spin_rate": 2509.5367,
"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.6606,
"sample_weight": 1.0,
"run_prevention_factor": 0.9438,
"strikeout_factor": 1.076,
"walk_factor": 0.936,
"homer_factor": 0.9845,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693645",
"espn_id": 5134581,
"player_name": "Cam Schlittler",
"team": "NYY",
"role": "pitcher",
"espn_rank": 2,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 2,
"gp_value": 30.0,
"gp_rank": 222,
"gs_value": 30.0,
"gs_rank": 4,
"qs_value": 18.0,
"qs_rank": 6,
"era_value": 2.0149,
"era_rank": 2.0,
"w_value": 13.0,
"w_rank": 12,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 178.2,
"ip_rank": 4,
"h_value": 122.0,
"h_rank": 75,
"er_value": 40.0,
"er_rank": 151,
"hr_value": 16.0,
"hr_rank": 85,
"bb_value": 42.0,
"bb_rank": 73,
"k_value": 220.0,
"k_rank": 5,
"k_per_9_value": 11.082089,
"k_per_9_rank": 33.0,
"whip_value": 0.9179,
"whip_rank": 4.0,
"war_value": 6.6,
"war_rank": 2.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9438,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9438,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9845,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.076,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
}
],
"provenance": {
"prediction": "output/games/20260913_NYM@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"
}
} |
| 20260913 | 20260913_PHI@ATL | away | Andrew Painter | Andrew Painter | True | 5.1 | 5.0 | -1 | 2 | 1 | -1 | 5/6 | 3/4 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.709969788519638,
"WHIP": 1.4138972809667674,
"IP": 110.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.017,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1049,
"sample_weight": 1.0,
"run_prevention_factor": 1.0089,
"strikeout_factor": 0.9863,
"walk_factor": 0.978,
"homer_factor": 1.0255,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 8.1,
"woba": 0.343,
"xwoba": 0.327,
"barrel_percent": 8.5,
"hard_hit_percent": 35.7,
"whiff_percent": 24.5
},
"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": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691725",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 14.0,
"R": 14.0,
"H": 25.0,
"BB": 8.0,
"SO": 28.0,
"HR": 4.0,
"BF": 123.0,
"Pitches": 482.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.8,
"H": 5.0,
"BB": 1.6,
"SO": 5.6,
"HR": 0.8,
"BF": 24.6,
"Pitches": 96.4
},
"rates": {
"ERA": 4.2,
"WHIP": 1.1,
"ER_per_IP": 0.46667,
"H_per_IP": 0.83333,
"BB_per_IP": 0.26667,
"SO_per_IP": 0.93333,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 30.0,
"R": 30.0,
"H": 45.0,
"BB": 20.0,
"SO": 50.0,
"HR": 8.0,
"BF": 222.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 2.0,
"SO": 5.0,
"HR": 0.8,
"BF": 22.2,
"Pitches": 85.4
},
"rates": {
"ERA": 5.1592,
"WHIP": 1.242,
"ER_per_IP": 0.57325,
"H_per_IP": 0.85987,
"BB_per_IP": 0.38217,
"SO_per_IP": 0.95541,
"HR_per_IP": 0.15287
}
},
"season": {
"games": 22,
"totals": {
"IP": 110.1,
"ER": 70.0,
"R": 70.0,
"H": 117.0,
"BB": 39.0,
"SO": 97.0,
"HR": 19.0,
"BF": 483.0,
"Pitches": 1861.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1818,
"R": 3.1818,
"H": 5.3182,
"BB": 1.7727,
"SO": 4.4091,
"HR": 0.8636,
"BF": 21.9545,
"Pitches": 84.5909
},
"rates": {
"ERA": 5.71,
"WHIP": 1.4139,
"ER_per_IP": 0.63444,
"H_per_IP": 1.06042,
"BB_per_IP": 0.35347,
"SO_per_IP": 0.87915,
"HR_per_IP": 0.17221
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.967,
"predicted_H": 5.047,
"predicted_BB": 1.86,
"predicted_SO": 5.207,
"predicted_HR": 0.824,
"predicted_ERA": 4.7807,
"predicted_WHIP": 1.2367
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.967,
"final": 2.5529,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.047,
"final": 5.0269,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.86,
"final": 2.3482,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.207,
"final": 5.1184,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.824,
"final": 0.8994,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7807,
"final": 4.7807,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2367,
"final": 1.2367,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 30,
"H": 45,
"BB": 20,
"SO": 50,
"HR": 8,
"ERA": 5.159235668789809,
"WHIP": 1.2420382165605097,
"K9": 8.598726114649683,
"HR9": 1.3757961783439492,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.081401512669079,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691725",
"player_name": "Andrew Painter",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"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": "PHI",
"games": 148,
"wins": 82,
"losses": 66,
"win_pct": 0.5541,
"runs_scored": 664.0,
"runs_allowed": 628.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2432,
"avg_runs_scored": 4.4865,
"avg_runs_allowed": 4.2432,
"offense_index": 0.9966,
"defense_index": 1.0609,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0407
},
"opponent": {
"team": "ATL",
"games": 148,
"wins": 87,
"losses": 61,
"win_pct": 0.5878,
"runs_scored": 677.0,
"runs_allowed": 566.0,
"run_differential": 111.0,
"run_differential_per_game": 0.75,
"avg_runs_scored": 4.5743,
"avg_runs_allowed": 3.8243,
"offense_index": 1.0161,
"defense_index": 1.1771,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.0,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.1663
},
"edges": {
"quality_edge": -0.1256,
"offense_edge": -0.0034,
"opponent_offense_edge": 0.0161,
"defense_strength": 0.0609,
"opponent_defense_weakness": -0.1771,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9962,
"run_prevention": 1.0028,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691725",
"profile": {
"available": true,
"pitcher_id": "691725",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 20.1,
"bb_percent": 8.1,
"woba": 0.343,
"xwoba": 0.327,
"sweet_spot_percent": 29.5,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 35.7,
"avg_best_speed": 75.6452,
"avg_hyper_speed": 93.6961,
"whiff_percent": 24.5,
"swing_percent": 49.3
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2293,
"command_and_miss": -0.0921,
"regression_edge": 0.4571,
"xwoba_edge": -0.4571,
"barrel_edge": -0.3111,
"hard_hit_edge": 0.3286,
"whiff_edge": -0.0714,
"bb_edge": 0.275,
"pitch_design_score": 0.0217
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691725",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 90.23617876908254,
"release_spin_rate": 2305.8805049886614,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 90.23617876908254,
"release_spin_rate": 2305.8805049886614,
"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.2362,
"release_spin_rate": 2305.8805,
"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.0217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1549,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.1049,
"sample_weight": 1.0,
"run_prevention_factor": 1.0089,
"strikeout_factor": 0.9863,
"walk_factor": 0.978,
"homer_factor": 1.0255,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691725",
"espn_id": 4872683,
"player_name": "Andrew Painter",
"team": "PHI",
"role": "pitcher",
"espn_rank": 226,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 226,
"gp_value": 22.0,
"gp_rank": 371,
"gs_value": 20.0,
"gs_rank": 100,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 5.7099,
"era_rank": null,
"w_value": 3.0,
"w_rank": 246,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 110.1,
"ip_rank": 111,
"h_value": 117.0,
"h_rank": 85,
"er_value": 70.0,
"er_rank": 32,
"hr_value": 19.0,
"hr_rank": 49,
"bb_value": 39.0,
"bb_rank": 94,
"k_value": 97.0,
"k_rank": 114,
"k_per_9_value": 7.912387,
"k_per_9_rank": 27.0,
"whip_value": 1.4138,
"whip_rank": null,
"war_value": 0.67,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0089,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0089,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0255,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9863,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260913_PHI@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"
}
} |
| 20260913 | 20260913_PHI@ATL | home | Grant Holmes | Grant Holmes | True | 5.0 | 4.0 | -3 | 3 | 2 | -1 | 3/5 | 3/2 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6085918854415278,
"WHIP": 1.3174224343675418,
"IP": 139.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.845,
"recent_avg_IP": 4.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3579,
"sample_weight": 1.0,
"run_prevention_factor": 1.0304,
"strikeout_factor": 0.9966,
"walk_factor": 1.012,
"homer_factor": 1.0815,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 9.8,
"woba": 0.308,
"xwoba": 0.333,
"barrel_percent": 8.5,
"hard_hit_percent": 44.6,
"whiff_percent": 27.5
},
"espn_rank": {
"rank": 53,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 139.2,
"season_ERA": 3.609,
"season_WHIP": 1.317,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656550",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 9.0,
"SO": 16.0,
"HR": 1.0,
"BF": 96.0,
"Pitches": 358.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 1.8,
"SO": 3.2,
"HR": 0.2,
"BF": 19.2,
"Pitches": 71.6
},
"rates": {
"ERA": 3.4225,
"WHIP": 1.1408,
"ER_per_IP": 0.38028,
"H_per_IP": 0.76056,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.67606,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 18.0,
"R": 18.0,
"H": 44.0,
"BB": 18.0,
"SO": 34.0,
"HR": 4.0,
"BF": 207.0,
"Pitches": 741.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 1.8,
"SO": 3.4,
"HR": 0.4,
"BF": 20.7,
"Pitches": 74.1
},
"rates": {
"ERA": 3.2185,
"WHIP": 1.2318,
"ER_per_IP": 0.35762,
"H_per_IP": 0.87417,
"BB_per_IP": 0.35762,
"SO_per_IP": 0.6755,
"HR_per_IP": 0.07947
}
},
"season": {
"games": 29,
"totals": {
"IP": 139.2,
"ER": 56.0,
"R": 58.0,
"H": 124.0,
"BB": 60.0,
"SO": 112.0,
"HR": 19.0,
"BF": 596.0,
"Pitches": 2225.0
},
"per_game": {
"IP": 4.2,
"ER": 1.931,
"R": 2.0,
"H": 4.2759,
"BB": 2.069,
"SO": 3.8621,
"HR": 0.6552,
"BF": 20.5517,
"Pitches": 76.7241
},
"rates": {
"ERA": 3.6086,
"WHIP": 1.3174,
"ER_per_IP": 0.40095,
"H_per_IP": 0.88783,
"BB_per_IP": 0.42959,
"SO_per_IP": 0.80191,
"HR_per_IP": 0.13604
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.903,
"predicted_H": 4.08,
"predicted_BB": 1.832,
"predicted_SO": 3.546,
"predicted_HR": 0.407,
"predicted_ERA": 3.5562,
"predicted_WHIP": 1.2279
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.903,
"final": 2.3551,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.08,
"final": 3.6349,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.832,
"final": 2.3134,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.546,
"final": 4.1453,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.407,
"final": 1.0636,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5562,
"final": 3.5562,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2279,
"final": 1.2279,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 18,
"H": 44,
"BB": 18,
"SO": 34,
"HR": 4,
"ERA": 3.218543046357616,
"WHIP": 1.2317880794701985,
"K9": 6.079470198675496,
"HR9": 0.7152317880794702,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.8628173392181995,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656550",
"player_name": "Grant Holmes",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 148,
"wins": 87,
"losses": 61,
"win_pct": 0.5878,
"runs_scored": 677.0,
"runs_allowed": 566.0,
"run_differential": 111.0,
"run_differential_per_game": 0.75,
"avg_runs_scored": 4.5743,
"avg_runs_allowed": 3.8243,
"offense_index": 1.0161,
"defense_index": 1.1771,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.0,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.1663
},
"opponent": {
"team": "PHI",
"games": 148,
"wins": 82,
"losses": 66,
"win_pct": 0.5541,
"runs_scored": 664.0,
"runs_allowed": 628.0,
"run_differential": 36.0,
"run_differential_per_game": 0.2432,
"avg_runs_scored": 4.4865,
"avg_runs_allowed": 4.2432,
"offense_index": 0.9966,
"defense_index": 1.0609,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.5,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0407
},
"edges": {
"quality_edge": 0.1256,
"offense_edge": 0.0161,
"opponent_offense_edge": -0.0034,
"defense_strength": 0.1771,
"opponent_defense_weakness": -0.0609,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0105,
"run_prevention": 0.9755,
"strikeout": 1.004
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656550",
"profile": {
"available": true,
"pitcher_id": "656550",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 559.0,
"k_percent": 18.9,
"bb_percent": 9.8,
"woba": 0.308,
"xwoba": 0.333,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 44.6,
"avg_best_speed": 82.0612,
"avg_hyper_speed": 94.8086,
"whiff_percent": 27.5,
"swing_percent": 48.7
},
"league_medians": {
"pa": 130.5,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.3165,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 77.6397,
"avg_hyper_speed": 93.9178,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4593,
"command_and_miss": -0.1043,
"regression_edge": -0.7143,
"xwoba_edge": -0.6286,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.9429,
"whiff_edge": 0.3571,
"bb_edge": -0.15,
"pitch_design_score": -0.0269
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656550",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.36784966366665,
"release_spin_rate": 2454.2393247591494,
"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": 69,
"pitch_usage": 0.0,
"release_speed": 89.36784966366665,
"release_spin_rate": 2454.2393247591494,
"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.3678,
"release_spin_rate": 2454.2393,
"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.0269,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1924,
"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.3579,
"sample_weight": 1.0,
"run_prevention_factor": 1.0304,
"strikeout_factor": 0.9966,
"walk_factor": 1.012,
"homer_factor": 1.0815,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656550",
"espn_id": 33840,
"player_name": "Grant Holmes",
"team": "ATL",
"role": "pitcher",
"espn_rank": 53,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 53,
"gp_value": 28.0,
"gp_rank": 270,
"gs_value": 27.0,
"gs_rank": 43,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 3.4648,
"era_rank": null,
"w_value": 9.0,
"w_rank": 44,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 137.2,
"ip_rank": 67,
"h_value": 120.0,
"h_rank": 78,
"er_value": 53.0,
"er_rank": 99,
"hr_value": 19.0,
"hr_rank": 49,
"bb_value": 57.0,
"bb_rank": 20,
"k_value": 110.0,
"k_rank": 85,
"k_per_9_value": 7.191283,
"k_per_9_rank": 34.0,
"whip_value": 1.2857,
"whip_rank": null,
"war_value": 2.53,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0304,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0304,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.012,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0815,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9966,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260913_PHI@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"
}
} |
| 20260913 | 20260913_PIT@CHC | away | Bubba Chandler | Bubba Chandler | True | 5.0 | 5.1 | 1 | 1 | 3 | 2 | 4/5 | 1/4 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.246478873239437,
"WHIP": 1.3380281690140845,
"IP": 142.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.062,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0018,
"sample_weight": 1.0,
"run_prevention_factor": 0.9998,
"strikeout_factor": 0.98,
"walk_factor": 1.048,
"homer_factor": 0.9763,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 11.6,
"woba": 0.306,
"xwoba": 0.309,
"barrel_percent": 5.7,
"hard_hit_percent": 38.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 101,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696149",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 13.0,
"H": 21.0,
"BB": 9.0,
"SO": 26.0,
"HR": 3.0,
"BF": 105.0,
"Pitches": 441.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 4.2,
"BB": 1.8,
"SO": 5.2,
"HR": 0.6,
"BF": 21.0,
"Pitches": 88.2
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.1688,
"ER_per_IP": 0.46753,
"H_per_IP": 0.81818,
"BB_per_IP": 0.35065,
"SO_per_IP": 1.01299,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 19.0,
"R": 23.0,
"H": 42.0,
"BB": 19.0,
"SO": 50.0,
"HR": 3.0,
"BF": 213.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.1,
"ER": 1.9,
"R": 2.3,
"H": 4.2,
"BB": 1.9,
"SO": 5.0,
"HR": 0.3,
"BF": 21.3,
"Pitches": 89.4
},
"rates": {
"ERA": 3.2675,
"WHIP": 1.1656,
"ER_per_IP": 0.36306,
"H_per_IP": 0.80255,
"BB_per_IP": 0.36306,
"SO_per_IP": 0.95541,
"HR_per_IP": 0.05732
}
},
"season": {
"games": 28,
"totals": {
"IP": 142.0,
"ER": 67.0,
"R": 77.0,
"H": 119.0,
"BB": 71.0,
"SO": 129.0,
"HR": 13.0,
"BF": 613.0,
"Pitches": 2429.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3929,
"R": 2.75,
"H": 4.25,
"BB": 2.5357,
"SO": 4.6071,
"HR": 0.4643,
"BF": 21.8929,
"Pitches": 86.75
},
"rates": {
"ERA": 4.2465,
"WHIP": 1.338,
"ER_per_IP": 0.47183,
"H_per_IP": 0.83803,
"BB_per_IP": 0.5,
"SO_per_IP": 0.90845,
"HR_per_IP": 0.09155
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.259,
"predicted_H": 4.288,
"predicted_BB": 1.952,
"predicted_SO": 4.931,
"predicted_HR": 0.507,
"predicted_ERA": 3.9881,
"predicted_WHIP": 1.2237
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.259,
"final": 1.7378,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.288,
"final": 4.1688,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.952,
"final": 1.5579,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.931,
"final": 4.5456,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.507,
"final": 0.2971,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9881,
"final": 3.9881,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2237,
"final": 1.2237,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 19,
"H": 42,
"BB": 19,
"SO": 50,
"HR": 3,
"ERA": 3.267515923566879,
"WHIP": 1.1656050955414012,
"K9": 8.598726114649681,
"HR9": 0.5159235668789809,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8635940449360012,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696149",
"player_name": "Bubba Chandler",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.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": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 149,
"wins": 74,
"losses": 75,
"win_pct": 0.4966,
"runs_scored": 714.0,
"runs_allowed": 689.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1678,
"avg_runs_scored": 4.7919,
"avg_runs_allowed": 4.6242,
"offense_index": 1.0668,
"defense_index": 0.9714,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.4,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0527
},
"opponent": {
"team": "CHC",
"games": 149,
"wins": 83,
"losses": 66,
"win_pct": 0.557,
"runs_scored": 796.0,
"runs_allowed": 657.0,
"run_differential": 139.0,
"run_differential_per_game": 0.9329,
"avg_runs_scored": 5.3423,
"avg_runs_allowed": 4.4094,
"offense_index": 1.1893,
"defense_index": 1.0187,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.7,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1627
},
"edges": {
"quality_edge": -0.11,
"offense_edge": 0.0668,
"opponent_offense_edge": 0.1893,
"defense_strength": -0.0286,
"opponent_defense_weakness": -0.0187,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9872,
"run_prevention": 1.0386,
"strikeout": 0.9816
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696149",
"profile": {
"available": true,
"pitcher_id": "696149",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 590.0,
"k_percent": 21.0,
"bb_percent": 11.6,
"woba": 0.306,
"xwoba": 0.309,
"sweet_spot_percent": 30.5,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 38.4,
"avg_best_speed": 78.4253,
"avg_hyper_speed": 93.9178,
"whiff_percent": 22.5,
"swing_percent": 47.5
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1221,
"command_and_miss": -0.3093,
"regression_edge": -0.0857,
"xwoba_edge": 0.0571,
"barrel_edge": 0.3111,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.3571,
"bb_edge": -0.6,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696149",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 94.85660265030191,
"release_spin_rate": 2338.4045388297577,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 94.85660265030191,
"release_spin_rate": 2338.4045388297577,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.8566,
"release_spin_rate": 2338.4045,
"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.0018,
"sample_weight": 1.0,
"run_prevention_factor": 0.9998,
"strikeout_factor": 0.98,
"walk_factor": 1.048,
"homer_factor": 0.9763,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696149",
"espn_id": 4683325,
"player_name": "Bubba Chandler",
"team": "PIT",
"role": "pitcher",
"espn_rank": 101,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 101,
"gp_value": 28.0,
"gp_rank": 278,
"gs_value": 27.0,
"gs_rank": 45,
"qs_value": 5.0,
"qs_rank": 110,
"era_value": 4.2464,
"era_rank": null,
"w_value": 7.0,
"w_rank": 87,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 142.0,
"ip_rank": 59,
"h_value": 119.0,
"h_rank": 83,
"er_value": 67.0,
"er_rank": 45,
"hr_value": 13.0,
"hr_rank": 127,
"bb_value": 71.0,
"bb_rank": 5,
"k_value": 129.0,
"k_rank": 58,
"k_per_9_value": 8.176057,
"k_per_9_rank": 26.0,
"whip_value": 1.338,
"whip_rank": null,
"war_value": 1.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9998,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9998,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.048,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9763,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.98,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"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 +3."
}
],
"provenance": {
"prediction": "output/games/20260913_PIT@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_PIT@CHC | home | Matthew Boyd | Matthew Boyd | True | 6.0 | 5.1 | -2 | 3 | 4 | 1 | 5/7 | 3/2 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.033536585365854,
"WHIP": 1.2164634146341464,
"IP": 109.1,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.754,
"recent_avg_IP": 5.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2714,
"sample_weight": 1.0,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9686,
"walk_factor": 0.962,
"homer_factor": 1.0532,
"regression_flag": "neutral",
"k_percent": 19.1,
"bb_percent": 7.3,
"woba": 0.312,
"xwoba": 0.331,
"barrel_percent": 9.0,
"hard_hit_percent": 38.3,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 204,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "571510",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 18.0,
"R": 19.0,
"H": 26.0,
"BB": 10.0,
"SO": 20.0,
"HR": 6.0,
"BF": 121.0,
"Pitches": 474.0
},
"per_game": {
"IP": 6.0,
"ER": 3.6,
"R": 3.8,
"H": 5.2,
"BB": 2.0,
"SO": 4.0,
"HR": 1.2,
"BF": 24.2,
"Pitches": 94.8
},
"rates": {
"ERA": 5.4607,
"WHIP": 1.2135,
"ER_per_IP": 0.60674,
"H_per_IP": 0.8764,
"BB_per_IP": 0.33708,
"SO_per_IP": 0.67416,
"HR_per_IP": 0.20225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 26.0,
"R": 28.0,
"H": 54.0,
"BB": 20.0,
"SO": 39.0,
"HR": 10.0,
"BF": 254.0,
"Pitches": 941.0
},
"per_game": {
"IP": 6.1,
"ER": 2.6,
"R": 2.8,
"H": 5.4,
"BB": 2.0,
"SO": 3.9,
"HR": 1.0,
"BF": 25.4,
"Pitches": 94.1
},
"rates": {
"ERA": 3.6947,
"WHIP": 1.1684,
"ER_per_IP": 0.41053,
"H_per_IP": 0.85263,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.61579,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 19,
"totals": {
"IP": 109.1,
"ER": 49.0,
"R": 52.0,
"H": 100.0,
"BB": 33.0,
"SO": 86.0,
"HR": 15.0,
"BF": 450.0,
"Pitches": 1708.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5789,
"R": 2.7368,
"H": 5.2632,
"BB": 1.7368,
"SO": 4.5263,
"HR": 0.7895,
"BF": 23.6842,
"Pitches": 89.8947
},
"rates": {
"ERA": 4.0335,
"WHIP": 1.2165,
"ER_per_IP": 0.44817,
"H_per_IP": 0.91463,
"BB_per_IP": 0.30183,
"SO_per_IP": 0.78659,
"HR_per_IP": 0.1372
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 3.058,
"predicted_H": 5.417,
"predicted_BB": 2.009,
"predicted_SO": 4.416,
"predicted_HR": 1.016,
"predicted_ERA": 4.5572,
"predicted_WHIP": 1.2295
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.058,
"final": 3.0326,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.417,
"final": 5.2344,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.009,
"final": 2.4431,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.416,
"final": 3.7958,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.016,
"final": 0.571,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5572,
"final": 4.5572,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2295,
"final": 1.2295,
"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": 26,
"H": 54,
"BB": 20,
"SO": 39,
"HR": 10,
"ERA": 3.6947368421052635,
"WHIP": 1.168421052631579,
"K9": 5.542105263157895,
"HR9": 1.4210526315789476,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.911726797198824,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "571510",
"player_name": "Matthew Boyd",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 149,
"wins": 83,
"losses": 66,
"win_pct": 0.557,
"runs_scored": 796.0,
"runs_allowed": 657.0,
"run_differential": 139.0,
"run_differential_per_game": 0.9329,
"avg_runs_scored": 5.3423,
"avg_runs_allowed": 4.4094,
"offense_index": 1.1893,
"defense_index": 1.0187,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.7,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.1627
},
"opponent": {
"team": "PIT",
"games": 149,
"wins": 74,
"losses": 75,
"win_pct": 0.4966,
"runs_scored": 714.0,
"runs_allowed": 689.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1678,
"avg_runs_scored": 4.7919,
"avg_runs_allowed": 4.6242,
"offense_index": 1.0668,
"defense_index": 0.9714,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.4,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0527
},
"edges": {
"quality_edge": 0.11,
"offense_edge": 0.1893,
"opponent_offense_edge": 0.0668,
"defense_strength": 0.0187,
"opponent_defense_weakness": 0.0286,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0023,
"run_prevention": 1.0033,
"strikeout": 0.998
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "571510",
"profile": {
"available": true,
"pitcher_id": "571510",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 423.0,
"k_percent": 19.1,
"bb_percent": 7.3,
"woba": 0.312,
"xwoba": 0.331,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 38.3,
"avg_best_speed": 76.3505,
"avg_hyper_speed": 94.0397,
"whiff_percent": 22.4,
"swing_percent": 48.6
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2471,
"command_and_miss": -0.2214,
"regression_edge": -0.5429,
"xwoba_edge": -0.5714,
"barrel_edge": -0.4222,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.3714,
"bb_edge": 0.475,
"pitch_design_score": -0.2643
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.12716924490148,
"release_spin_rate": 2218.8215824003037,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.12716924490148,
"release_spin_rate": 2218.8215824003037,
"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.1272,
"release_spin_rate": 2218.8216,
"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.2643,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8876,
"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.2714,
"sample_weight": 1.0,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9686,
"walk_factor": 0.962,
"homer_factor": 1.0532,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "571510",
"espn_id": 34401,
"player_name": "Matthew Boyd",
"team": "CHC",
"role": "pitcher",
"espn_rank": 204,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 204,
"gp_value": 19.0,
"gp_rank": 407,
"gs_value": 19.0,
"gs_rank": 108,
"qs_value": 8.0,
"qs_rank": 77,
"era_value": 4.0335,
"era_rank": null,
"w_value": 8.0,
"w_rank": 67,
"l_value": 4.0,
"l_rank": 190,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 109.1,
"ip_rank": 114,
"h_value": 100.0,
"h_rank": 120,
"er_value": 49.0,
"er_rank": 110,
"hr_value": 15.0,
"hr_rank": 94,
"bb_value": 33.0,
"bb_rank": 143,
"k_value": 86.0,
"k_rank": 143,
"k_per_9_value": 7.079268,
"k_per_9_rank": 33.0,
"whip_value": 1.2164,
"whip_rank": null,
"war_value": 0.84,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0231,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0231,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0532,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9686,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "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/20260913_PIT@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_SD@SF | away | Nick Pivetta | Nick Pivetta | True | 5.0 | 4.0 | -3 | 4 | 2 | -2 | 3/5 | 2/0 | 7/5 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 3.4285714285714284,
"WHIP": 0.9523809523809523,
"IP": 21.0,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 4.2,
"recent_avg_IP": 4.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3728,
"sample_weight": 0.45,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0177,
"walk_factor": 0.982,
"homer_factor": 0.9672,
"regression_flag": "neutral",
"k_percent": 31.3,
"bb_percent": 7.2,
"woba": 0.223,
"xwoba": 0.242,
"barrel_percent": 7.8,
"hard_hit_percent": 33.3,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 269,
"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": "601713",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 6.0,
"SO": 26.0,
"HR": 0.0,
"BF": 83.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.2,
"SO": 5.2,
"HR": 0.0,
"BF": 16.6,
"Pitches": 69.2
},
"rates": {
"ERA": 3.4286,
"WHIP": 0.9524,
"ER_per_IP": 0.38095,
"H_per_IP": 0.66667,
"BB_per_IP": 0.28571,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 6.0,
"SO": 26.0,
"HR": 0.0,
"BF": 83.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.2,
"SO": 5.2,
"HR": 0.0,
"BF": 16.6,
"Pitches": 69.2
},
"rates": {
"ERA": 3.4286,
"WHIP": 0.9524,
"ER_per_IP": 0.38095,
"H_per_IP": 0.66667,
"BB_per_IP": 0.28571,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
},
"season": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 6.0,
"SO": 26.0,
"HR": 0.0,
"BF": 83.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 1.2,
"SO": 5.2,
"HR": 0.0,
"BF": 16.6,
"Pitches": 69.2
},
"rates": {
"ERA": 3.4286,
"WHIP": 0.9524,
"ER_per_IP": 0.38095,
"H_per_IP": 0.66667,
"BB_per_IP": 0.28571,
"SO_per_IP": 1.2381,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.923,
"predicted_H": 3.562,
"predicted_BB": 1.423,
"predicted_SO": 4.72,
"predicted_HR": 0.318,
"predicted_ERA": 3.993,
"predicted_WHIP": 1.1502
}
},
"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": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.923,
"final": 3.0887,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.562,
"final": 3.2466,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.423,
"final": 1.7468,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.72,
"final": 5.9996,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.318,
"final": 0.7008,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.993,
"final": 3.993,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1502,
"final": 1.1502,
"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": 21.0,
"ER": 8,
"H": 14,
"BB": 6,
"SO": 26,
"HR": 0,
"ERA": 3.4285714285714284,
"WHIP": 0.9523809523809523,
"K9": 11.142857142857142,
"HR9": 0.0,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 0.9146605379449766,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 7.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": "601713",
"player_name": "Nick Pivetta",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"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": "SD",
"games": 148,
"wins": 80,
"losses": 68,
"win_pct": 0.5405,
"runs_scored": 633.0,
"runs_allowed": 613.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1351,
"avg_runs_scored": 4.277,
"avg_runs_allowed": 4.1419,
"offense_index": 0.9487,
"defense_index": 1.0884,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.0,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1209
},
"opponent": {
"team": "SF",
"games": 149,
"wins": 62,
"losses": 87,
"win_pct": 0.4161,
"runs_scored": 628.0,
"runs_allowed": 703.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 4.2148,
"avg_runs_allowed": 4.7181,
"offense_index": 0.9349,
"defense_index": 0.9555,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1327
},
"edges": {
"quality_edge": 0.2536,
"offense_edge": -0.0513,
"opponent_offense_edge": -0.0651,
"defense_strength": 0.0884,
"opponent_defense_weakness": 0.0445,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0154,
"run_prevention": 0.9681,
"strikeout": 1.0128
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 66.0,
"k_percent": 31.3,
"bb_percent": 7.2,
"woba": 0.223,
"xwoba": 0.242,
"sweet_spot_percent": 27.5,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 33.3,
"avg_best_speed": 77.3027,
"avg_hyper_speed": 93.2375,
"whiff_percent": 22.6,
"swing_percent": 47.4
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.309,
"command_and_miss": 0.5779,
"regression_edge": -0.5429,
"xwoba_edge": 1.9714,
"barrel_edge": -0.1556,
"hard_hit_edge": 0.6571,
"whiff_edge": -0.3429,
"bb_edge": 0.5,
"pitch_design_score": -0.0076
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.7106880975281,
"release_spin_rate": 2436.819590096514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.7106880975281,
"release_spin_rate": 2436.819590096514,
"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.7107,
"release_spin_rate": 2436.8196,
"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.0076,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0542,
"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.3728,
"sample_weight": 0.45,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0177,
"walk_factor": 0.982,
"homer_factor": 0.9672,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "601713",
"espn_id": 36071,
"player_name": "Nick Pivetta",
"team": "SD",
"role": "pitcher",
"espn_rank": 269,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 269,
"gp_value": 5.0,
"gp_rank": 635,
"gs_value": 5.0,
"gs_rank": 221,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 3.4285,
"era_rank": null,
"w_value": 2.0,
"w_rank": 317,
"l_value": 2.0,
"l_rank": 332,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 21.0,
"ip_rank": 507,
"h_value": 14.0,
"h_rank": 587,
"er_value": 8.0,
"er_rank": 588,
"hr_value": 0.0,
"hr_rank": 746,
"bb_value": 6.0,
"bb_rank": 588,
"k_value": 26.0,
"k_rank": 444,
"k_per_9_value": 11.142858,
"k_per_9_rank": 23.0,
"whip_value": 0.9523,
"whip_rank": null,
"war_value": 0.41,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9857,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9857,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9919,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9852,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.008,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260913_SD@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"
}
} |
| 20260913 | 20260913_SD@SF | home | Logan Webb | Logan Webb | True | 5.1 | 5.0 | -1 | 1 | 6 | 5 | 3/8 | 2/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.104925053533191,
"WHIP": 1.1498929336188437,
"IP": 155.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.987,
"recent_avg_IP": 4.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0006,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 0.9669,
"walk_factor": 0.94,
"homer_factor": 0.979,
"regression_flag": "neutral",
"k_percent": 19.7,
"bb_percent": 6.2,
"woba": 0.287,
"xwoba": 0.311,
"barrel_percent": 5.6,
"hard_hit_percent": 38.9,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 109,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "657277",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 18.0,
"R": 18.0,
"H": 27.0,
"BB": 8.0,
"SO": 24.0,
"HR": 3.0,
"BF": 106.0,
"Pitches": 411.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.6,
"H": 5.4,
"BB": 1.6,
"SO": 4.8,
"HR": 0.6,
"BF": 21.2,
"Pitches": 82.2
},
"rates": {
"ERA": 7.1471,
"WHIP": 1.5441,
"ER_per_IP": 0.79412,
"H_per_IP": 1.19118,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.05882,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 28.0,
"R": 28.0,
"H": 49.0,
"BB": 14.0,
"SO": 47.0,
"HR": 4.0,
"BF": 232.0,
"Pitches": 902.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 4.9,
"BB": 1.4,
"SO": 4.7,
"HR": 0.4,
"BF": 23.2,
"Pitches": 90.2
},
"rates": {
"ERA": 4.5542,
"WHIP": 1.1386,
"ER_per_IP": 0.50602,
"H_per_IP": 0.88554,
"BB_per_IP": 0.25301,
"SO_per_IP": 0.8494,
"HR_per_IP": 0.07229
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.2,
"ER": 71.0,
"R": 74.0,
"H": 139.0,
"BB": 40.0,
"SO": 127.0,
"HR": 12.0,
"BF": 644.0,
"Pitches": 2396.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7308,
"R": 2.8462,
"H": 5.3462,
"BB": 1.5385,
"SO": 4.8846,
"HR": 0.4615,
"BF": 24.7692,
"Pitches": 92.1538
},
"rates": {
"ERA": 4.1049,
"WHIP": 1.1499,
"ER_per_IP": 0.4561,
"H_per_IP": 0.89293,
"BB_per_IP": 0.25696,
"SO_per_IP": 0.81585,
"HR_per_IP": 0.07709
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.209,
"predicted_H": 5.381,
"predicted_BB": 1.642,
"predicted_SO": 4.96,
"predicted_HR": 0.57,
"predicted_ERA": 5.4579,
"predicted_WHIP": 1.3273
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.209,
"final": 2.2853,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.381,
"final": 4.3854,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.642,
"final": 1.7917,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.96,
"final": 4.9767,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.57,
"final": 0.7498,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4579,
"final": 5.4579,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3273,
"final": 1.3273,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 28,
"H": 49,
"BB": 14,
"SO": 47,
"HR": 4,
"ERA": 4.55421686746988,
"WHIP": 1.13855421686747,
"K9": 7.644578313253013,
"HR9": 0.6506024096385543,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.0076716291582406,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657277",
"player_name": "Logan Webb",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 149,
"wins": 62,
"losses": 87,
"win_pct": 0.4161,
"runs_scored": 628.0,
"runs_allowed": 703.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5034,
"avg_runs_scored": 4.2148,
"avg_runs_allowed": 4.7181,
"offense_index": 0.9349,
"defense_index": 0.9555,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1327
},
"opponent": {
"team": "SD",
"games": 148,
"wins": 80,
"losses": 68,
"win_pct": 0.5405,
"runs_scored": 633.0,
"runs_allowed": 613.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1351,
"avg_runs_scored": 4.277,
"avg_runs_allowed": 4.1419,
"offense_index": 0.9487,
"defense_index": 1.0884,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.0,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.1209
},
"edges": {
"quality_edge": -0.2536,
"offense_edge": -0.0651,
"opponent_offense_edge": -0.0513,
"defense_strength": -0.0445,
"opponent_defense_weakness": -0.0884,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9906,
"run_prevention": 1.0089,
"strikeout": 0.9965
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657277",
"profile": {
"available": true,
"pitcher_id": "657277",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 617.0,
"k_percent": 19.7,
"bb_percent": 6.2,
"woba": 0.287,
"xwoba": 0.311,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 38.9,
"avg_best_speed": 76.892,
"avg_hyper_speed": 93.8796,
"whiff_percent": 21.5,
"swing_percent": 47.5
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2106,
"command_and_miss": -0.1729,
"regression_edge": -0.6857,
"xwoba_edge": 0.0,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.1429,
"whiff_edge": -0.5,
"bb_edge": 0.75,
"pitch_design_score": -0.0623
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657277",
"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": 88.73294133231225,
"release_spin_rate": 2031.61497228025,
"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": 88.73294133231225,
"release_spin_rate": 2031.61497228025,
"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.7329,
"release_spin_rate": 2031.615,
"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.0623,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4453,
"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.0006,
"sample_weight": 1.0,
"run_prevention_factor": 1.0,
"strikeout_factor": 0.9669,
"walk_factor": 0.94,
"homer_factor": 0.979,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657277",
"espn_id": 41216,
"player_name": "Logan Webb",
"team": "SF",
"role": "pitcher",
"espn_rank": 109,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 109,
"gp_value": 26.0,
"gp_rank": 313,
"gs_value": 26.0,
"gs_rank": 56,
"qs_value": 17.0,
"qs_rank": 12,
"era_value": 4.1049,
"era_rank": 37.0,
"w_value": 8.0,
"w_rank": 67,
"l_value": 8.0,
"l_rank": 64,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 155.2,
"ip_rank": 39,
"h_value": 139.0,
"h_rank": 41,
"er_value": 71.0,
"er_rank": 27,
"hr_value": 12.0,
"hr_rank": 137,
"bb_value": 40.0,
"bb_rank": 88,
"k_value": 127.0,
"k_rank": 61,
"k_per_9_value": 7.3426123,
"k_per_9_rank": 42.0,
"whip_value": 1.1498,
"whip_rank": 21.0,
"war_value": 1.67,
"war_rank": 35.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.979,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9669,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260913_SD@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"
}
} |
| 20260913 | 20260913_SEA@OAK | away | Bryce Miller | Bryce Miller | True | 5.1 | 5.0 | -1 | 4 | 2 | -2 | 4/2 | 1/5 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.221498371335505,
"WHIP": 1.1433224755700326,
"IP": 102.1,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.407,
"recent_avg_IP": 4.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9709,
"strikeout_factor": 1.0143,
"walk_factor": 0.956,
"homer_factor": 0.9582,
"regression_flag": "neutral",
"k_percent": 24.3,
"bb_percent": 7.0,
"woba": 0.306,
"xwoba": 0.288,
"barrel_percent": 7.4,
"hard_hit_percent": 33.1,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 193,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682243",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 21.0,
"R": 22.0,
"H": 28.0,
"BB": 14.0,
"SO": 22.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 434.0
},
"per_game": {
"IP": 4.2,
"ER": 4.2,
"R": 4.4,
"H": 5.6,
"BB": 2.8,
"SO": 4.4,
"HR": 1.0,
"BF": 21.8,
"Pitches": 86.8
},
"rates": {
"ERA": 8.1,
"WHIP": 1.8,
"ER_per_IP": 0.9,
"H_per_IP": 1.2,
"BB_per_IP": 0.6,
"SO_per_IP": 0.94286,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 38.0,
"R": 42.0,
"H": 58.0,
"BB": 24.0,
"SO": 39.0,
"HR": 11.0,
"BF": 228.0,
"Pitches": 875.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.2,
"H": 5.8,
"BB": 2.4,
"SO": 3.9,
"HR": 1.1,
"BF": 22.8,
"Pitches": 87.5
},
"rates": {
"ERA": 6.8859,
"WHIP": 1.651,
"ER_per_IP": 0.7651,
"H_per_IP": 1.16779,
"BB_per_IP": 0.48322,
"SO_per_IP": 0.78523,
"HR_per_IP": 0.22148
}
},
"season": {
"games": 19,
"totals": {
"IP": 102.1,
"ER": 48.0,
"R": 52.0,
"H": 88.0,
"BB": 29.0,
"SO": 101.0,
"HR": 18.0,
"BF": 415.0,
"Pitches": 1613.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5263,
"R": 2.7368,
"H": 4.6316,
"BB": 1.5263,
"SO": 5.3158,
"HR": 0.9474,
"BF": 21.8421,
"Pitches": 84.8947
},
"rates": {
"ERA": 4.2215,
"WHIP": 1.1433,
"ER_per_IP": 0.46906,
"H_per_IP": 0.85993,
"BB_per_IP": 0.28339,
"SO_per_IP": 0.98697,
"HR_per_IP": 0.1759
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.564,
"predicted_H": 5.458,
"predicted_BB": 2.351,
"predicted_SO": 4.531,
"predicted_HR": 0.982,
"predicted_ERA": 6.4115,
"predicted_WHIP": 1.5606
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.564,
"final": 3.755,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.458,
"final": 4.8194,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.351,
"final": 1.7593,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.531,
"final": 5.6124,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.982,
"final": 1.4279,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4115,
"final": 6.4115,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5606,
"final": 1.5606,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 38,
"H": 58,
"BB": 24,
"SO": 39,
"HR": 11,
"ERA": 6.885906040268456,
"WHIP": 1.651006711409396,
"K9": 7.067114093959732,
"HR9": 1.993288590604027,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.2827979734616286,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682243",
"player_name": "Bryce Miller",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 149,
"wins": 70,
"losses": 79,
"win_pct": 0.4698,
"runs_scored": 605.0,
"runs_allowed": 662.0,
"run_differential": -57.0,
"run_differential_per_game": -0.3826,
"avg_runs_scored": 4.0604,
"avg_runs_allowed": 4.443,
"offense_index": 0.9038,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.5,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0725
},
"opponent": {
"team": "OAK",
"games": 149,
"wins": 60,
"losses": 89,
"win_pct": 0.4027,
"runs_scored": 648.0,
"runs_allowed": 852.0,
"run_differential": -204.0,
"run_differential_per_game": -1.3691,
"avg_runs_scored": 4.349,
"avg_runs_allowed": 5.7181,
"offense_index": 0.968,
"defense_index": 0.7857,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.1803
},
"edges": {
"quality_edge": 0.1078,
"offense_edge": -0.0962,
"opponent_offense_edge": -0.032,
"defense_strength": 0.0112,
"opponent_defense_weakness": 0.2143,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0059,
"run_prevention": 0.9884,
"strikeout": 1.0058
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682243",
"profile": {
"available": true,
"pitcher_id": "682243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 394.0,
"k_percent": 24.3,
"bb_percent": 7.0,
"woba": 0.306,
"xwoba": 0.288,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 33.1,
"avg_best_speed": 76.7874,
"avg_hyper_speed": 92.9438,
"whiff_percent": 25.2,
"swing_percent": 54.6
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3895,
"command_and_miss": 0.2679,
"regression_edge": 0.5143,
"xwoba_edge": 0.6571,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.6857,
"whiff_edge": 0.0286,
"bb_edge": 0.55,
"pitch_design_score": 0.0387
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682243",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.53704637922834,
"release_spin_rate": 2146.4219419634296,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.53704637922834,
"release_spin_rate": 2146.4219419634296,
"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.537,
"release_spin_rate": 2146.4219,
"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.0387,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2763,
"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.3423,
"sample_weight": 1.0,
"run_prevention_factor": 0.9709,
"strikeout_factor": 1.0143,
"walk_factor": 0.956,
"homer_factor": 0.9582,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "682243",
"espn_id": 4654313,
"player_name": "Bryce Miller",
"team": "SEA",
"role": "pitcher",
"espn_rank": 193,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 193,
"gp_value": 19.0,
"gp_rank": 407,
"gs_value": 18.0,
"gs_rank": 114,
"qs_value": 3.0,
"qs_rank": 141,
"era_value": 4.2214,
"era_rank": null,
"w_value": 4.0,
"w_rank": 192,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 102.1,
"ip_rank": 123,
"h_value": 88.0,
"h_rank": 130,
"er_value": 48.0,
"er_rank": 120,
"hr_value": 18.0,
"hr_rank": 62,
"bb_value": 29.0,
"bb_rank": 183,
"k_value": 101.0,
"k_rank": 103,
"k_per_9_value": 8.882736,
"k_per_9_rank": 22.0,
"whip_value": 1.1433,
"whip_rank": null,
"war_value": 0.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9709,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9709,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9582,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0143,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 21,
"Pitches": 88,
"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/20260913_SEA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_SEA@OAK | home | Jacob Lopez | Jacob Lopez | True | 5.0 | 3.2 | -4 | 6 | 5 | -1 | 7/6 | 1/3 | 7/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.783783783783784,
"WHIP": 1.4504504504504505,
"IP": 111.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 4.873,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2888,
"sample_weight": 1.0,
"run_prevention_factor": 0.9755,
"strikeout_factor": 0.9926,
"walk_factor": 1.032,
"homer_factor": 0.9238,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.1,
"bb_percent": 10.8,
"woba": 0.336,
"xwoba": 0.29,
"barrel_percent": 6.3,
"hard_hit_percent": 30.2,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 157,
"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": "682052",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 10.0,
"R": 11.0,
"H": 24.0,
"BB": 9.0,
"SO": 29.0,
"HR": 5.0,
"BF": 120.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.2,
"H": 4.8,
"BB": 1.8,
"SO": 5.8,
"HR": 1.0,
"BF": 24.0,
"Pitches": 95.8
},
"rates": {
"ERA": 3.1034,
"WHIP": 1.1379,
"ER_per_IP": 0.34483,
"H_per_IP": 0.82759,
"BB_per_IP": 0.31034,
"SO_per_IP": 1.0,
"HR_per_IP": 0.17241
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 17.0,
"R": 19.0,
"H": 43.0,
"BB": 19.0,
"SO": 61.0,
"HR": 8.0,
"BF": 230.0,
"Pitches": 931.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.9,
"H": 4.3,
"BB": 1.9,
"SO": 6.1,
"HR": 0.8,
"BF": 23.0,
"Pitches": 93.1
},
"rates": {
"ERA": 2.7485,
"WHIP": 1.1138,
"ER_per_IP": 0.30539,
"H_per_IP": 0.77246,
"BB_per_IP": 0.34132,
"SO_per_IP": 1.09581,
"HR_per_IP": 0.14371
}
},
"season": {
"games": 24,
"totals": {
"IP": 111.0,
"ER": 59.0,
"R": 62.0,
"H": 108.0,
"BB": 53.0,
"SO": 104.0,
"HR": 19.0,
"BF": 492.0,
"Pitches": 1984.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4583,
"R": 2.5833,
"H": 4.5,
"BB": 2.2083,
"SO": 4.3333,
"HR": 0.7917,
"BF": 20.5,
"Pitches": 82.6667
},
"rates": {
"ERA": 4.7838,
"WHIP": 1.4505,
"ER_per_IP": 0.53153,
"H_per_IP": 0.97297,
"BB_per_IP": 0.47748,
"SO_per_IP": 0.93694,
"HR_per_IP": 0.17117
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.135,
"predicted_H": 4.69,
"predicted_BB": 1.946,
"predicted_SO": 5.482,
"predicted_HR": 0.868,
"predicted_ERA": 3.5294,
"predicted_WHIP": 1.2189
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.135,
"final": 3.7693,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.69,
"final": 5.6668,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.946,
"final": 1.546,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.482,
"final": 6.1239,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.868,
"final": 1.7695,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5294,
"final": 3.5294,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2189,
"final": 1.2189,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 17,
"H": 43,
"BB": 19,
"SO": 61,
"HR": 8,
"ERA": 2.748502994011976,
"WHIP": 1.1137724550898205,
"K9": 9.862275449101796,
"HR9": 1.2934131736526946,
"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-09-07T00:00:00"
},
"recent_form_boost": 0.8039092743497852,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 3
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682052",
"player_name": "Jacob Lopez",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 3.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_R": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 149,
"wins": 60,
"losses": 89,
"win_pct": 0.4027,
"runs_scored": 648.0,
"runs_allowed": 852.0,
"run_differential": -204.0,
"run_differential_per_game": -1.3691,
"avg_runs_scored": 4.349,
"avg_runs_allowed": 5.7181,
"offense_index": 0.968,
"defense_index": 0.7857,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.1803
},
"opponent": {
"team": "SEA",
"games": 149,
"wins": 70,
"losses": 79,
"win_pct": 0.4698,
"runs_scored": 605.0,
"runs_allowed": 662.0,
"run_differential": -57.0,
"run_differential_per_game": -0.3826,
"avg_runs_scored": 4.0604,
"avg_runs_allowed": 4.443,
"offense_index": 0.9038,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.5,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0725
},
"edges": {
"quality_edge": -0.1078,
"offense_edge": -0.032,
"opponent_offense_edge": -0.0962,
"defense_strength": -0.2143,
"opponent_defense_weakness": -0.0112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9931,
"run_prevention": 1.0114,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682052",
"profile": {
"available": true,
"pitcher_id": "682052",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 463.0,
"k_percent": 21.1,
"bb_percent": 10.8,
"woba": 0.336,
"xwoba": 0.29,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 30.2,
"avg_best_speed": 71.5785,
"avg_hyper_speed": 92.3781,
"whiff_percent": 24.6,
"swing_percent": 46.0
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3943,
"command_and_miss": -0.1579,
"regression_edge": 1.3143,
"xwoba_edge": 0.6,
"barrel_edge": 0.1778,
"hard_hit_edge": 1.1,
"whiff_edge": -0.0571,
"bb_edge": -0.4,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682052",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 84.031463275553,
"release_spin_rate": 2262.6861671894067,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 84.031463275553,
"release_spin_rate": 2262.6861671894067,
"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.0315,
"release_spin_rate": 2262.6862,
"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.2888,
"sample_weight": 1.0,
"run_prevention_factor": 0.9755,
"strikeout_factor": 0.9926,
"walk_factor": 1.032,
"homer_factor": 0.9238,
"woba_minus_xwoba": 0.046,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "682052",
"espn_id": 42239,
"player_name": "Jacob Lopez",
"team": "ATH",
"role": "pitcher",
"espn_rank": 157,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 157,
"gp_value": 24.0,
"gp_rank": 344,
"gs_value": 21.0,
"gs_rank": 94,
"qs_value": 4.0,
"qs_rank": 125,
"era_value": 4.7837,
"era_rank": null,
"w_value": 6.0,
"w_rank": 109,
"l_value": 4.0,
"l_rank": 190,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 1.0,
"hld_rank": 272,
"ip_value": 111.0,
"ip_rank": 108,
"h_value": 108.0,
"h_rank": 109,
"er_value": 59.0,
"er_rank": 74,
"hr_value": 19.0,
"hr_rank": 52,
"bb_value": 53.0,
"bb_rank": 32,
"k_value": 104.0,
"k_rank": 96,
"k_per_9_value": 8.432432,
"k_per_9_rank": 24.0,
"whip_value": 1.4504,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9755,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9755,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9238,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9926,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 23,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260913_SEA@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_TEX@ARI | away | Cal Quantrill | Cal Quantrill | True | 6.0 | 6.0 | 0 | 3 | 2 | -1 | 7/5 | 1/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.892857142857143,
"WHIP": 1.0616883116883116,
"IP": 102.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.333,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0384,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9497,
"walk_factor": 0.936,
"homer_factor": 0.9976,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 6.0,
"woba": 0.276,
"xwoba": 0.305,
"barrel_percent": 7.8,
"hard_hit_percent": 36.2,
"whiff_percent": 19.7
},
"espn_rank": {
"rank": 93,
"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": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "615698",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 6.0,
"R": 6.0,
"H": 21.0,
"BB": 3.0,
"SO": 28.0,
"HR": 3.0,
"BF": 119.0,
"Pitches": 463.0
},
"per_game": {
"IP": 6.1,
"ER": 1.2,
"R": 1.2,
"H": 4.2,
"BB": 0.6,
"SO": 5.6,
"HR": 0.6,
"BF": 23.8,
"Pitches": 92.6
},
"rates": {
"ERA": 1.6875,
"WHIP": 0.75,
"ER_per_IP": 0.1875,
"H_per_IP": 0.65625,
"BB_per_IP": 0.09375,
"SO_per_IP": 0.875,
"HR_per_IP": 0.09375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 11.0,
"R": 13.0,
"H": 33.0,
"BB": 11.0,
"SO": 46.0,
"HR": 4.0,
"BF": 201.0,
"Pitches": 769.0
},
"per_game": {
"IP": 5.1,
"ER": 1.1,
"R": 1.3,
"H": 3.3,
"BB": 1.1,
"SO": 4.6,
"HR": 0.4,
"BF": 20.1,
"Pitches": 76.9
},
"rates": {
"ERA": 1.8917,
"WHIP": 0.8408,
"ER_per_IP": 0.21019,
"H_per_IP": 0.63057,
"BB_per_IP": 0.21019,
"SO_per_IP": 0.87898,
"HR_per_IP": 0.07643
}
},
"season": {
"games": 30,
"totals": {
"IP": 102.2,
"ER": 33.0,
"R": 39.0,
"H": 84.0,
"BB": 25.0,
"SO": 77.0,
"HR": 12.0,
"BF": 417.0,
"Pitches": 1587.0
},
"per_game": {
"IP": 3.1,
"ER": 1.1,
"R": 1.3,
"H": 2.8,
"BB": 0.8333,
"SO": 2.5667,
"HR": 0.4,
"BF": 13.9,
"Pitches": 52.9
},
"rates": {
"ERA": 2.8929,
"WHIP": 1.0617,
"ER_per_IP": 0.32143,
"H_per_IP": 0.81818,
"BB_per_IP": 0.24351,
"SO_per_IP": 0.75,
"HR_per_IP": 0.11688
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.438,
"predicted_H": 3.951,
"predicted_BB": 1.061,
"predicted_SO": 4.728,
"predicted_HR": 0.548,
"predicted_ERA": 2.3655,
"predicted_WHIP": 0.9161
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.438,
"final": 2.079,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 3.951,
"final": 5.2022,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.061,
"final": 1.036,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.728,
"final": 4.4292,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.548,
"final": 1.1439,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3655,
"final": 2.3655,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9161,
"final": 0.9161,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 11,
"H": 33,
"BB": 11,
"SO": 46,
"HR": 4,
"ERA": 1.89171974522293,
"WHIP": 0.840764331210191,
"K9": 7.910828025477707,
"HR9": 0.6878980891719745,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.7006959557640268,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"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": 3,
"predicted_H": 7,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "615698",
"player_name": "Cal Quantrill",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.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": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"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": {
"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": 3.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 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": 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": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"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": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.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": 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": "TEX",
"games": 149,
"wins": 73,
"losses": 76,
"win_pct": 0.4899,
"runs_scored": 617.0,
"runs_allowed": 662.0,
"run_differential": -45.0,
"run_differential_per_game": -0.302,
"avg_runs_scored": 4.1409,
"avg_runs_allowed": 4.443,
"offense_index": 0.9217,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0806
},
"opponent": {
"team": "ARI",
"games": 149,
"wins": 79,
"losses": 70,
"win_pct": 0.5302,
"runs_scored": 659.0,
"runs_allowed": 656.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0201,
"avg_runs_scored": 4.4228,
"avg_runs_allowed": 4.4027,
"offense_index": 0.9845,
"defense_index": 1.0204,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.4,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0631
},
"edges": {
"quality_edge": -0.1437,
"offense_edge": -0.0783,
"opponent_offense_edge": -0.0155,
"defense_strength": 0.0112,
"opponent_defense_weakness": -0.0204,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9952,
"run_prevention": 1.0036,
"strikeout": 0.9969
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "615698",
"profile": {
"available": true,
"pitcher_id": "615698",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 379.0,
"k_percent": 18.5,
"bb_percent": 6.0,
"woba": 0.276,
"xwoba": 0.305,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 36.2,
"avg_best_speed": 78.6896,
"avg_hyper_speed": 93.7625,
"whiff_percent": 19.7,
"swing_percent": 48.2
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2324,
"command_and_miss": -0.33,
"regression_edge": -0.8286,
"xwoba_edge": 0.1714,
"barrel_edge": -0.1556,
"hard_hit_edge": 0.2429,
"whiff_edge": -0.7571,
"bb_edge": 0.8,
"pitch_design_score": 0.0013
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "615698",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.86889101613033,
"release_spin_rate": 1951.1701617807282,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.86889101613033,
"release_spin_rate": 1951.1701617807282,
"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.8689,
"release_spin_rate": 1951.1702,
"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.0013,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.009,
"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.0384,
"sample_weight": 1.0,
"run_prevention_factor": 1.0033,
"strikeout_factor": 0.9497,
"walk_factor": 0.936,
"homer_factor": 0.9976,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "615698",
"espn_id": 39875,
"player_name": "Cal Quantrill",
"team": "TEX",
"role": "pitcher",
"espn_rank": 93,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 93,
"gp_value": 30.0,
"gp_rank": 225,
"gs_value": 13.0,
"gs_rank": 156,
"qs_value": 7.0,
"qs_rank": 82,
"era_value": 2.8928,
"era_rank": null,
"w_value": 8.0,
"w_rank": 67,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 102.2,
"ip_rank": 121,
"h_value": 84.0,
"h_rank": 142,
"er_value": 33.0,
"er_rank": 176,
"hr_value": 12.0,
"hr_rank": 137,
"bb_value": 25.0,
"bb_rank": 221,
"k_value": 77.0,
"k_rank": 161,
"k_per_9_value": 6.75,
"k_per_9_rank": 35.0,
"whip_value": 1.0616,
"whip_rank": null,
"war_value": 1.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0033,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 1.0033,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9976,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9497,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 26,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260913_TEX@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260913 | 20260913_TEX@ARI | home | Eduardo Rodriguez | Eduardo Rodriguez | True | 6.0 | 5.1 | -2 | 2 | 3 | 1 | 2/8 | 2/1 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5491329479768785,
"WHIP": 1.2023121387283238,
"IP": 173.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.966,
"recent_avg_IP": 5.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1413,
"sample_weight": 1.0,
"run_prevention_factor": 1.012,
"strikeout_factor": 0.9571,
"walk_factor": 0.976,
"homer_factor": 0.985,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 8.0,
"woba": 0.293,
"xwoba": 0.32,
"barrel_percent": 7.4,
"hard_hit_percent": 33.0,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "593958",
"report_date": "20260913",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 6.0,
"R": 6.0,
"H": 22.0,
"BB": 10.0,
"SO": 27.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 498.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.2,
"H": 4.4,
"BB": 2.0,
"SO": 5.4,
"HR": 0.4,
"BF": 24.0,
"Pitches": 99.6
},
"rates": {
"ERA": 1.8202,
"WHIP": 1.0787,
"ER_per_IP": 0.20225,
"H_per_IP": 0.74157,
"BB_per_IP": 0.33708,
"SO_per_IP": 0.91011,
"HR_per_IP": 0.06742
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 20.0,
"R": 22.0,
"H": 57.0,
"BB": 18.0,
"SO": 49.0,
"HR": 3.0,
"BF": 248.0,
"Pitches": 986.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.2,
"H": 5.7,
"BB": 1.8,
"SO": 4.9,
"HR": 0.3,
"BF": 24.8,
"Pitches": 98.6
},
"rates": {
"ERA": 3.0508,
"WHIP": 1.2712,
"ER_per_IP": 0.33898,
"H_per_IP": 0.9661,
"BB_per_IP": 0.30508,
"SO_per_IP": 0.83051,
"HR_per_IP": 0.05085
}
},
"season": {
"games": 29,
"totals": {
"IP": 173.0,
"ER": 49.0,
"R": 53.0,
"H": 151.0,
"BB": 57.0,
"SO": 128.0,
"HR": 15.0,
"BF": 710.0,
"Pitches": 2773.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6897,
"R": 1.8276,
"H": 5.2069,
"BB": 1.9655,
"SO": 4.4138,
"HR": 0.5172,
"BF": 24.4828,
"Pitches": 95.6207
},
"rates": {
"ERA": 2.5491,
"WHIP": 1.2023,
"ER_per_IP": 0.28324,
"H_per_IP": 0.87283,
"BB_per_IP": 0.32948,
"SO_per_IP": 0.73988,
"HR_per_IP": 0.08671
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.81,
"predicted_H": 5.194,
"predicted_BB": 1.987,
"predicted_SO": 5.17,
"predicted_HR": 0.465,
"predicted_ERA": 2.7145,
"predicted_WHIP": 1.1969
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.81,
"final": 1.8883,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.194,
"final": 3.8776,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.987,
"final": 1.9924,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.17,
"final": 5.5121,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.465,
"final": 0.2734,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7145,
"final": 2.7145,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1969,
"final": 1.1969,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.0,
"ER": 20,
"H": 57,
"BB": 18,
"SO": 49,
"HR": 3,
"ERA": 3.0508474576271185,
"WHIP": 1.271186440677966,
"K9": 7.47457627118644,
"HR9": 0.4576271186440678,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.8418583761461923,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 149,
"wins": 79,
"losses": 70,
"win_pct": 0.5302,
"runs_scored": 659.0,
"runs_allowed": 656.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0201,
"avg_runs_scored": 4.4228,
"avg_runs_allowed": 4.4027,
"offense_index": 0.9845,
"defense_index": 1.0204,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.4,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0631
},
"opponent": {
"team": "TEX",
"games": 149,
"wins": 73,
"losses": 76,
"win_pct": 0.4899,
"runs_scored": 617.0,
"runs_allowed": 662.0,
"run_differential": -45.0,
"run_differential_per_game": -0.302,
"avg_runs_scored": 4.1409,
"avg_runs_allowed": 4.443,
"offense_index": 0.9217,
"defense_index": 1.0112,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0806
},
"edges": {
"quality_edge": 0.1437,
"offense_edge": -0.0155,
"opponent_offense_edge": -0.0783,
"defense_strength": 0.0204,
"opponent_defense_weakness": -0.0112,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0095,
"run_prevention": 0.9782,
"strikeout": 1.0106
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 683.0,
"k_percent": 18.0,
"bb_percent": 8.0,
"woba": 0.293,
"xwoba": 0.32,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 33.0,
"avg_best_speed": 76.067,
"avg_hyper_speed": 93.2402,
"whiff_percent": 21.5,
"swing_percent": 48.1
},
"league_medians": {
"pa": 131.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.5837,
"avg_hyper_speed": 93.9189,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0703,
"command_and_miss": -0.3721,
"regression_edge": -0.7714,
"xwoba_edge": -0.2571,
"barrel_edge": -0.0667,
"hard_hit_edge": 0.7,
"whiff_edge": -0.5,
"bb_edge": 0.3,
"pitch_design_score": -0.0853
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"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": 88.32297298554603,
"release_spin_rate": 2174.0124226478806,
"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": 88.32297298554603,
"release_spin_rate": 2174.0124226478806,
"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.323,
"release_spin_rate": 2174.0124,
"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.0853,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6093,
"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.1413,
"sample_weight": 1.0,
"run_prevention_factor": 1.012,
"strikeout_factor": 0.9571,
"walk_factor": 0.976,
"homer_factor": 0.985,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "593958",
"espn_id": 32675,
"player_name": "Eduardo Rodriguez",
"team": "ARI",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 860,
"metrics": {
"espn_rank": 8,
"gp_value": 29.0,
"gp_rank": 244,
"gs_value": 29.0,
"gs_rank": 14,
"qs_value": 18.0,
"qs_rank": 6,
"era_value": 2.5491,
"era_rank": 6.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 251,
"hld_value": 0.0,
"hld_rank": 354,
"ip_value": 173.0,
"ip_rank": 7,
"h_value": 151.0,
"h_rank": 22,
"er_value": 49.0,
"er_rank": 110,
"hr_value": 15.0,
"hr_rank": 94,
"bb_value": 57.0,
"bb_rank": 20,
"k_value": 128.0,
"k_rank": 59,
"k_per_9_value": 6.65896,
"k_per_9_rank": 227.0,
"whip_value": 1.2023,
"whip_rank": 28.0,
"war_value": 5.32,
"war_rank": 8.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.012,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.012,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.985,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9571,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260913_TEX@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |