| 20260912 | 20260912_BAL@TOR | away | Kyle Bradish | Kyle Bradish | True | 5.1 | 3.0 | -7 | 4 | 5 | 1 | 6/8 | 2/2 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9078947368421053,
"WHIP": 1.4210526315789473,
"IP": 152.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.429,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0942,
"sample_weight": 1.0,
"run_prevention_factor": 1.008,
"strikeout_factor": 0.9891,
"walk_factor": 1.024,
"homer_factor": 1.0279,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 10.4,
"woba": 0.332,
"xwoba": 0.318,
"barrel_percent": 8.3,
"hard_hit_percent": 38.1,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 147,
"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": "680694",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 14.0,
"R": 19.0,
"H": 32.0,
"BB": 14.0,
"SO": 19.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 464.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 3.8,
"H": 6.4,
"BB": 2.8,
"SO": 3.8,
"HR": 1.0,
"BF": 23.4,
"Pitches": 92.8
},
"rates": {
"ERA": 5.04,
"WHIP": 1.84,
"ER_per_IP": 0.56,
"H_per_IP": 1.28,
"BB_per_IP": 0.56,
"SO_per_IP": 0.76,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 24.0,
"R": 30.0,
"H": 55.0,
"BB": 20.0,
"SO": 39.0,
"HR": 6.0,
"BF": 223.0,
"Pitches": 893.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 3.0,
"H": 5.5,
"BB": 2.0,
"SO": 3.9,
"HR": 0.6,
"BF": 22.3,
"Pitches": 89.3
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.461,
"ER_per_IP": 0.46753,
"H_per_IP": 1.07143,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.75974,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 28,
"totals": {
"IP": 152.0,
"ER": 66.0,
"R": 78.0,
"H": 148.0,
"BB": 68.0,
"SO": 140.0,
"HR": 18.0,
"BF": 652.0,
"Pitches": 2573.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3571,
"R": 2.7857,
"H": 5.2857,
"BB": 2.4286,
"SO": 5.0,
"HR": 0.6429,
"BF": 23.2857,
"Pitches": 91.8929
},
"rates": {
"ERA": 3.9079,
"WHIP": 1.4211,
"ER_per_IP": 0.43421,
"H_per_IP": 0.97368,
"BB_per_IP": 0.44737,
"SO_per_IP": 0.92105,
"HR_per_IP": 0.11842
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.567,
"predicted_H": 5.717,
"predicted_BB": 2.357,
"predicted_SO": 4.161,
"predicted_HR": 0.783,
"predicted_ERA": 4.5235,
"predicted_WHIP": 1.5811
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.567,
"final": 3.1603,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.717,
"final": 5.8342,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.357,
"final": 2.2092,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.161,
"final": 4.9224,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.783,
"final": 0.4588,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5235,
"final": 4.5235,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5811,
"final": 1.5811,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 24,
"H": 55,
"BB": 20,
"SO": 39,
"HR": 6,
"ERA": 4.207792207792208,
"WHIP": 1.461038961038961,
"K9": 6.837662337662337,
"HR9": 1.051948051948052,
"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-06T00:00:00"
},
"recent_form_boost": 0.9798391419188102,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680694",
"player_name": "Kyle Bradish",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 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": "680694",
"profile": {
"available": true,
"pitcher_id": "680694",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 626.0,
"k_percent": 21.5,
"bb_percent": 10.4,
"woba": 0.332,
"xwoba": 0.318,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 38.1,
"avg_best_speed": 76.9977,
"avg_hyper_speed": 93.9275,
"whiff_percent": 23.6,
"swing_percent": 45.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.1706,
"command_and_miss": -0.1621,
"regression_edge": 0.4,
"xwoba_edge": -0.2,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.0143,
"whiff_edge": -0.2,
"bb_edge": -0.3,
"pitch_design_score": 0.044
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680694",
"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.63469351624383,
"release_spin_rate": 2423.758885534265,
"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.63469351624383,
"release_spin_rate": 2423.758885534265,
"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.6347,
"release_spin_rate": 2423.7589,
"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.044,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3143,
"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.0942,
"sample_weight": 1.0,
"run_prevention_factor": 1.008,
"strikeout_factor": 0.9891,
"walk_factor": 1.024,
"homer_factor": 1.0279,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680694",
"espn_id": 4311625,
"player_name": "Kyle Bradish",
"team": "BAL",
"role": "pitcher",
"espn_rank": 147,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 147,
"gp_value": 28.0,
"gp_rank": 270,
"gs_value": 28.0,
"gs_rank": 31,
"qs_value": 12.0,
"qs_rank": 37,
"era_value": 3.9078,
"era_rank": 32.0,
"w_value": 7.0,
"w_rank": 86,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 152.0,
"ip_rank": 43,
"h_value": 148.0,
"h_rank": 24,
"er_value": 66.0,
"er_rank": 47,
"hr_value": 18.0,
"hr_rank": 59,
"bb_value": 68.0,
"bb_rank": 8,
"k_value": 140.0,
"k_rank": 43,
"k_per_9_value": 8.289474,
"k_per_9_rank": 27.0,
"whip_value": 1.421,
"whip_rank": 47.0,
"war_value": 1.29,
"war_rank": 44.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.008,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.008,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0279,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9891,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_BAL@TOR | home | Spencer Miles | Spencer Miles | True | 5.0 | 2.0 | -9 | 2 | 0 | -2 | 1/1 | 0/2 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7718631178707223,
"WHIP": 1.0494296577946767,
"IP": 87.2,
"games_started": null,
"games_pitched": 45,
"role_avg_IP": 2.833,
"recent_avg_IP": 2.8,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5264,
"sample_weight": 1.0,
"run_prevention_factor": 0.9553,
"strikeout_factor": 0.9691,
"walk_factor": 0.936,
"homer_factor": 0.8818,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 6.0,
"woba": 0.252,
"xwoba": 0.267,
"barrel_percent": 3.6,
"hard_hit_percent": 34.8,
"whiff_percent": 18.5
},
"espn_rank": {
"rank": 64,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 87.2,
"season_ERA": 2.772,
"season_WHIP": 1.049,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.688,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7796,
"prior_weight": 0.2204
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693686",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 45,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.1,
"ER": 0.0,
"R": 0.0,
"H": 3.0,
"BB": 1.0,
"SO": 8.0,
"HR": 0.0,
"BF": 26.0,
"Pitches": 106.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.2,
"SO": 1.6,
"HR": 0.0,
"BF": 5.2,
"Pitches": 21.2
},
"rates": {
"ERA": 0.0,
"WHIP": 0.5455,
"ER_per_IP": 0.0,
"H_per_IP": 0.40909,
"BB_per_IP": 0.13636,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.2,
"ER": 0.0,
"R": 0.0,
"H": 6.0,
"BB": 1.0,
"SO": 9.0,
"HR": 0.0,
"BF": 42.0,
"Pitches": 157.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.1,
"SO": 0.9,
"HR": 0.0,
"BF": 4.2,
"Pitches": 15.7
},
"rates": {
"ERA": 0.0,
"WHIP": 0.6,
"ER_per_IP": 0.0,
"H_per_IP": 0.51429,
"BB_per_IP": 0.08571,
"SO_per_IP": 0.77143,
"HR_per_IP": 0.0
}
},
"season": {
"games": 45,
"totals": {
"IP": 87.2,
"ER": 27.0,
"R": 29.0,
"H": 71.0,
"BB": 21.0,
"SO": 81.0,
"HR": 5.0,
"BF": 350.0,
"Pitches": 1350.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6,
"R": 0.6444,
"H": 1.5778,
"BB": 0.4667,
"SO": 1.8,
"HR": 0.1111,
"BF": 7.7778,
"Pitches": 30.0
},
"rates": {
"ERA": 2.7719,
"WHIP": 1.0494,
"ER_per_IP": 0.30798,
"H_per_IP": 0.80989,
"BB_per_IP": 0.23954,
"SO_per_IP": 0.92395,
"HR_per_IP": 0.05703
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.38,
"predicted_H": 1.494,
"predicted_BB": 0.455,
"predicted_SO": 2.26,
"predicted_HR": 0.098,
"predicted_ERA": 1.4306,
"predicted_WHIP": 0.8148
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4431,
"form_weight": 0.5569,
"form_reliability": 0.7796,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.688,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7796,
"prior_weight": 0.2204
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.38,
"final": 1.0979,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 1.494,
"final": 1.2751,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.455,
"final": 0.2534,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.26,
"final": 3.031,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.098,
"final": 0.4977,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.4306,
"final": 1.4306,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8148,
"final": 0.8148,
"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": 11.2,
"ER": 0,
"H": 6,
"BB": 1,
"SO": 9,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.6,
"K9": 6.942857142857142,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8028117284744305,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.688,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7796,
"prior_weight": 0.2204
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693686",
"player_name": "Spencer Miles",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "693686",
"profile": {
"available": true,
"pitcher_id": "693686",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 342.0,
"k_percent": 23.1,
"bb_percent": 6.0,
"woba": 0.252,
"xwoba": 0.267,
"sweet_spot_percent": 28.3,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 34.8,
"avg_best_speed": 75.793,
"avg_hyper_speed": 92.9876,
"whiff_percent": 18.5,
"swing_percent": 48.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.0492,
"command_and_miss": -0.0943,
"regression_edge": -0.4286,
"xwoba_edge": 1.2571,
"barrel_edge": 0.7778,
"hard_hit_edge": 0.4571,
"whiff_edge": -0.9286,
"bb_edge": 0.8,
"pitch_design_score": 0.0775
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693686",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 91.23355064115414,
"release_spin_rate": 2455.6420446448724,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 91.23355064115414,
"release_spin_rate": 2455.6420446448724,
"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.2336,
"release_spin_rate": 2455.642,
"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.0775,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5538,
"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.5264,
"sample_weight": 1.0,
"run_prevention_factor": 0.9553,
"strikeout_factor": 0.9691,
"walk_factor": 0.936,
"homer_factor": 0.8818,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693686",
"espn_id": 4833671,
"player_name": "Spencer Miles",
"team": "TOR",
"role": "pitcher",
"espn_rank": 64,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 64,
"gp_value": 45.0,
"gp_rank": 140,
"gs_value": 6.0,
"gs_rank": 207,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 2.7718,
"era_rank": null,
"w_value": 6.0,
"w_rank": 108,
"l_value": 2.0,
"l_rank": 330,
"sv_value": 2.0,
"sv_rank": 93,
"hld_value": 4.0,
"hld_rank": 192,
"ip_value": 87.2,
"ip_rank": 148,
"h_value": 71.0,
"h_rank": 161,
"er_value": 27.0,
"er_rank": 217,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 21.0,
"bb_rank": 282,
"k_value": 81.0,
"k_rank": 154,
"k_per_9_value": 8.315589,
"k_per_9_rank": 28.0,
"whip_value": 1.0494,
"whip_rank": null,
"war_value": 2.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9553,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9553,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8818,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9691,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 4,
"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": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CHW@STL | away | Sean Newcomb | Sean Newcomb | True | 5.0 | 1.1 | -11 | 2 | 1 | -1 | 3/1 | 1/1 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.710843373493976,
"WHIP": 1.108433734939759,
"IP": 83.0,
"games_started": null,
"games_pitched": 52,
"role_avg_IP": 2.083,
"recent_avg_IP": 2.083,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0934,
"sample_weight": 1.0,
"run_prevention_factor": 0.9921,
"strikeout_factor": 0.9874,
"walk_factor": 0.988,
"homer_factor": 0.9537,
"regression_flag": "negative_pitcher_regression",
"k_percent": 21.8,
"bb_percent": 8.6,
"woba": 0.27,
"xwoba": 0.305,
"barrel_percent": 5.2,
"hard_hit_percent": 36.7,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 56,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 83.0,
"season_ERA": 2.711,
"season_WHIP": 1.108,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.747,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7701,
"prior_weight": 0.2299
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656794",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 52,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.0,
"ER": 6.0,
"R": 6.0,
"H": 13.0,
"BB": 2.0,
"SO": 7.0,
"HR": 0.0,
"BF": 48.0,
"Pitches": 186.0
},
"per_game": {
"IP": 2.1,
"ER": 1.2,
"R": 1.2,
"H": 2.6,
"BB": 0.4,
"SO": 1.4,
"HR": 0.0,
"BF": 9.6,
"Pitches": 37.2
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.3636,
"ER_per_IP": 0.54545,
"H_per_IP": 1.18182,
"BB_per_IP": 0.18182,
"SO_per_IP": 0.63636,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 19.2,
"ER": 6.0,
"R": 7.0,
"H": 15.0,
"BB": 6.0,
"SO": 14.0,
"HR": 0.0,
"BF": 79.0,
"Pitches": 326.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6,
"R": 0.7,
"H": 1.5,
"BB": 0.6,
"SO": 1.4,
"HR": 0.0,
"BF": 7.9,
"Pitches": 32.6
},
"rates": {
"ERA": 2.7458,
"WHIP": 1.0678,
"ER_per_IP": 0.30508,
"H_per_IP": 0.76271,
"BB_per_IP": 0.30508,
"SO_per_IP": 0.71186,
"HR_per_IP": 0.0
}
},
"season": {
"games": 52,
"totals": {
"IP": 83.0,
"ER": 25.0,
"R": 28.0,
"H": 63.0,
"BB": 29.0,
"SO": 74.0,
"HR": 2.0,
"BF": 337.0,
"Pitches": 1313.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4808,
"R": 0.5385,
"H": 1.2115,
"BB": 0.5577,
"SO": 1.4231,
"HR": 0.0385,
"BF": 6.4808,
"Pitches": 25.25
},
"rates": {
"ERA": 2.7108,
"WHIP": 1.1084,
"ER_per_IP": 0.3012,
"H_per_IP": 0.75904,
"BB_per_IP": 0.3494,
"SO_per_IP": 0.89157,
"HR_per_IP": 0.0241
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.293,
"predicted_H": 2.851,
"predicted_BB": 0.848,
"predicted_SO": 2.286,
"predicted_HR": 0.111,
"predicted_ERA": 3.9003,
"predicted_WHIP": 1.2399
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4471,
"form_weight": 0.5529,
"form_reliability": 0.7701,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.747,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7701,
"prior_weight": 0.2299
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.293,
"final": 2.0563,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.851,
"final": 2.9176,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.848,
"final": 0.916,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.286,
"final": 4.3938,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.111,
"final": 0.9556,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9003,
"final": 3.9003,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2399,
"final": 1.2399,
"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": 19.2,
"ER": 6,
"H": 15,
"BB": 6,
"SO": 14,
"HR": 0,
"ERA": 2.7457627118644066,
"WHIP": 1.0677966101694916,
"K9": 6.406779661016949,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.87449603410094,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.747,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7701,
"prior_weight": 0.2299
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656794",
"player_name": "Sean Newcomb",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 147,
"wins": 75,
"losses": 72,
"win_pct": 0.5102,
"runs_scored": 688.0,
"runs_allowed": 653.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2381,
"avg_runs_scored": 4.6803,
"avg_runs_allowed": 4.4422,
"offense_index": 1.0397,
"defense_index": 1.0134,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.9,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0322
},
"opponent": {
"team": "STL",
"games": 148,
"wins": 73,
"losses": 75,
"win_pct": 0.4932,
"runs_scored": 675.0,
"runs_allowed": 683.0,
"run_differential": -8.0,
"run_differential_per_game": -0.0541,
"avg_runs_scored": 4.5608,
"avg_runs_allowed": 4.6149,
"offense_index": 1.0131,
"defense_index": 0.9755,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 5.8,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0124
},
"edges": {
"quality_edge": -0.0198,
"offense_edge": 0.0397,
"opponent_offense_edge": 0.0131,
"defense_strength": 0.0134,
"opponent_defense_weakness": 0.0245,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9991,
"run_prevention": 1.0017,
"strikeout": 0.9984
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656794",
"profile": {
"available": true,
"pitcher_id": "656794",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 317.0,
"k_percent": 21.8,
"bb_percent": 8.6,
"woba": 0.27,
"xwoba": 0.305,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 36.7,
"avg_best_speed": 77.1285,
"avg_hyper_speed": 93.7581,
"whiff_percent": 23.0,
"swing_percent": 45.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.3852,
"command_and_miss": -0.0829,
"regression_edge": -1.0,
"xwoba_edge": 0.1714,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.1857,
"whiff_edge": -0.2857,
"bb_edge": 0.15,
"pitch_design_score": -0.0094
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656794",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 36,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 36,
"pitch_usage": 0.0,
"release_speed": 89.6819236058532,
"release_spin_rate": 2443.82215386872,
"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": 36,
"pitch_usage": 0.0,
"release_speed": 89.6819236058532,
"release_spin_rate": 2443.82215386872,
"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.6819,
"release_spin_rate": 2443.8222,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0094,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0668,
"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.0934,
"sample_weight": 1.0,
"run_prevention_factor": 0.9921,
"strikeout_factor": 0.9874,
"walk_factor": 0.988,
"homer_factor": 0.9537,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "656794",
"espn_id": 33856,
"player_name": "Sean Newcomb",
"team": "CHW",
"role": "pitcher",
"espn_rank": 56,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 56,
"gp_value": 53.0,
"gp_rank": 92,
"gs_value": 4.0,
"gs_rank": 235,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 2.7108,
"era_rank": null,
"w_value": 2.0,
"w_rank": 316,
"l_value": 4.0,
"l_rank": 189,
"sv_value": 4.0,
"sv_rank": 54,
"hld_value": 11.0,
"hld_rank": 76,
"ip_value": 83.0,
"ip_rank": 157,
"h_value": 65.0,
"h_rank": 181,
"er_value": 25.0,
"er_rank": 244,
"hr_value": 2.0,
"hr_rank": 528,
"bb_value": 29.0,
"bb_rank": 179,
"k_value": 74.0,
"k_rank": 170,
"k_per_9_value": 8.0240965,
"k_per_9_rank": 29.0,
"whip_value": 1.1325,
"whip_rank": null,
"war_value": 2.47,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9921,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9921,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 0.988,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9537,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9874,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"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": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CHW@STL | home | Kyle Leahy | Kyle Leahy | True | 5.0 | 3.0 | -6 | 0 | 0 | 0 | 2/2 | 5/0 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.409090909090909,
"WHIP": 1.3257575757575757,
"IP": 132.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.889,
"recent_avg_IP": 3.933,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4119,
"sample_weight": 1.0,
"run_prevention_factor": 1.035,
"strikeout_factor": 0.9874,
"walk_factor": 0.952,
"homer_factor": 1.1298,
"regression_flag": "neutral",
"k_percent": 22.2,
"bb_percent": 6.8,
"woba": 0.325,
"xwoba": 0.337,
"barrel_percent": 10.0,
"hard_hit_percent": 47.8,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 60,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 132.0,
"season_ERA": 3.409,
"season_WHIP": 1.326,
"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": "681517",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.2,
"ER": 7.0,
"R": 7.0,
"H": 21.0,
"BB": 3.0,
"SO": 25.0,
"HR": 2.0,
"BF": 81.0,
"Pitches": 340.0
},
"per_game": {
"IP": 4.0,
"ER": 1.4,
"R": 1.4,
"H": 4.2,
"BB": 0.6,
"SO": 5.0,
"HR": 0.4,
"BF": 16.2,
"Pitches": 68.0
},
"rates": {
"ERA": 3.2034,
"WHIP": 1.2203,
"ER_per_IP": 0.35593,
"H_per_IP": 1.0678,
"BB_per_IP": 0.15254,
"SO_per_IP": 1.27119,
"HR_per_IP": 0.10169
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 13.0,
"R": 13.0,
"H": 45.0,
"BB": 5.0,
"SO": 51.0,
"HR": 5.0,
"BF": 181.0,
"Pitches": 761.0
},
"per_game": {
"IP": 4.2,
"ER": 1.3,
"R": 1.3,
"H": 4.5,
"BB": 0.5,
"SO": 5.1,
"HR": 0.5,
"BF": 18.1,
"Pitches": 76.1
},
"rates": {
"ERA": 2.562,
"WHIP": 1.0949,
"ER_per_IP": 0.28467,
"H_per_IP": 0.9854,
"BB_per_IP": 0.10949,
"SO_per_IP": 1.11679,
"HR_per_IP": 0.10949
}
},
"season": {
"games": 27,
"totals": {
"IP": 132.0,
"ER": 50.0,
"R": 50.0,
"H": 137.0,
"BB": 38.0,
"SO": 124.0,
"HR": 14.0,
"BF": 559.0,
"Pitches": 2192.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8519,
"R": 1.8519,
"H": 5.0741,
"BB": 1.4074,
"SO": 4.5926,
"HR": 0.5185,
"BF": 20.7037,
"Pitches": 81.1852
},
"rates": {
"ERA": 3.4091,
"WHIP": 1.3258,
"ER_per_IP": 0.37879,
"H_per_IP": 1.03788,
"BB_per_IP": 0.28788,
"SO_per_IP": 0.93939,
"HR_per_IP": 0.10606
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.636,
"predicted_H": 4.628,
"predicted_BB": 0.89,
"predicted_SO": 5.056,
"predicted_HR": 0.505,
"predicted_ERA": 3.2559,
"predicted_WHIP": 1.2203
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.636,
"final": 0.9554,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.628,
"final": 3.5348,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 0.89,
"final": 2.5997,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.056,
"final": 4.2007,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.505,
"final": 0.2949,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2559,
"final": 3.2559,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2203,
"final": 1.2203,
"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": 13,
"H": 45,
"BB": 5,
"SO": 51,
"HR": 5,
"ERA": 2.562043795620438,
"WHIP": 1.094890510948905,
"K9": 10.05109489051095,
"HR9": 0.9854014598540146,
"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-06T00:00:00"
},
"recent_form_boost": 0.7855387342972346,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"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": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "STL",
"games": 148,
"wins": 73,
"losses": 75,
"win_pct": 0.4932,
"runs_scored": 675.0,
"runs_allowed": 683.0,
"run_differential": -8.0,
"run_differential_per_game": -0.0541,
"avg_runs_scored": 4.5608,
"avg_runs_allowed": 4.6149,
"offense_index": 1.0131,
"defense_index": 0.9755,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 5.8,
"run_differential": 7.0
},
"available": true,
"quality_score": -0.0124
},
"opponent": {
"team": "CHW",
"games": 147,
"wins": 75,
"losses": 72,
"win_pct": 0.5102,
"runs_scored": 688.0,
"runs_allowed": 653.0,
"run_differential": 35.0,
"run_differential_per_game": 0.2381,
"avg_runs_scored": 4.6803,
"avg_runs_allowed": 4.4422,
"offense_index": 1.0397,
"defense_index": 1.0134,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.9,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0322
},
"edges": {
"quality_edge": 0.0198,
"offense_edge": 0.0131,
"opponent_offense_edge": 0.0397,
"defense_strength": -0.0245,
"opponent_defense_weakness": -0.0134,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9985,
"run_prevention": 1.0078,
"strikeout": 0.9974
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 543.0,
"k_percent": 22.2,
"bb_percent": 6.8,
"woba": 0.325,
"xwoba": 0.337,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 47.8,
"avg_best_speed": 81.1785,
"avg_hyper_speed": 95.4242,
"whiff_percent": 22.6,
"swing_percent": 46.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.6777,
"command_and_miss": 0.0129,
"regression_edge": -0.3429,
"xwoba_edge": -0.7429,
"barrel_edge": -0.6444,
"hard_hit_edge": -1.4,
"whiff_edge": -0.3429,
"bb_edge": 0.6,
"pitch_design_score": -0.0187
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.51471712850346,
"release_spin_rate": 2179.7749965573753,
"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": 73,
"pitch_usage": 0.0,
"release_speed": 89.51471712850346,
"release_spin_rate": 2179.7749965573753,
"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.5147,
"release_spin_rate": 2179.775,
"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.0187,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1337,
"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.4119,
"sample_weight": 1.0,
"run_prevention_factor": 1.035,
"strikeout_factor": 0.9874,
"walk_factor": 0.952,
"homer_factor": 1.1298,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681517",
"espn_id": 5006093,
"player_name": "Kyle Leahy",
"team": "STL",
"role": "pitcher",
"espn_rank": 60,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 60,
"gp_value": 27.0,
"gp_rank": 294,
"gs_value": 27.0,
"gs_rank": 43,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 3.409,
"era_rank": null,
"w_value": 10.0,
"w_rank": 29,
"l_value": 4.0,
"l_rank": 189,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 132.0,
"ip_rank": 78,
"h_value": 137.0,
"h_rank": 44,
"er_value": 50.0,
"er_rank": 104,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 38.0,
"bb_rank": 103,
"k_value": 124.0,
"k_rank": 62,
"k_per_9_value": 8.454545,
"k_per_9_rank": 21.0,
"whip_value": 1.3257,
"whip_rank": null,
"war_value": 2.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.035,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.035,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1298,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9874,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 5,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -5."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CIN@MIL | away | Brady Singer | Brady Singer | True | 5.0 | 4.0 | -3 | 6 | 8 | 2 | 8/8 | 1/5 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.031818181818182,
"WHIP": 1.465909090909091,
"IP": 146.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.238,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5233,
"sample_weight": 1.0,
"run_prevention_factor": 1.0445,
"strikeout_factor": 0.9749,
"walk_factor": 0.972,
"homer_factor": 1.1018,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 7.8,
"woba": 0.356,
"xwoba": 0.348,
"barrel_percent": 9.5,
"hard_hit_percent": 42.8,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 181,
"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": "663903",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 20.0,
"R": 20.0,
"H": 33.0,
"BB": 11.0,
"SO": 20.0,
"HR": 5.0,
"BF": 128.0,
"Pitches": 471.0
},
"per_game": {
"IP": 5.1,
"ER": 4.0,
"R": 4.0,
"H": 6.6,
"BB": 2.2,
"SO": 4.0,
"HR": 1.0,
"BF": 25.6,
"Pitches": 94.2
},
"rates": {
"ERA": 6.6667,
"WHIP": 1.6296,
"ER_per_IP": 0.74074,
"H_per_IP": 1.22222,
"BB_per_IP": 0.40741,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.18519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 35.0,
"R": 35.0,
"H": 63.0,
"BB": 20.0,
"SO": 44.0,
"HR": 7.0,
"BF": 256.0,
"Pitches": 972.0
},
"per_game": {
"IP": 5.2,
"ER": 3.5,
"R": 3.5,
"H": 6.3,
"BB": 2.0,
"SO": 4.4,
"HR": 0.7,
"BF": 25.6,
"Pitches": 97.2
},
"rates": {
"ERA": 5.5263,
"WHIP": 1.4561,
"ER_per_IP": 0.61404,
"H_per_IP": 1.10526,
"BB_per_IP": 0.35088,
"SO_per_IP": 0.77193,
"HR_per_IP": 0.12281
}
},
"season": {
"games": 28,
"totals": {
"IP": 146.2,
"ER": 82.0,
"R": 87.0,
"H": 164.0,
"BB": 51.0,
"SO": 120.0,
"HR": 27.0,
"BF": 658.0,
"Pitches": 2547.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9286,
"R": 3.1071,
"H": 5.8571,
"BB": 1.8214,
"SO": 4.2857,
"HR": 0.9643,
"BF": 23.5,
"Pitches": 90.9643
},
"rates": {
"ERA": 5.0318,
"WHIP": 1.4659,
"ER_per_IP": 0.55909,
"H_per_IP": 1.11818,
"BB_per_IP": 0.34773,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.18409
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.457,
"predicted_H": 6.149,
"predicted_BB": 2.037,
"predicted_SO": 4.31,
"predicted_HR": 0.872,
"predicted_ERA": 5.7269,
"predicted_WHIP": 1.5069
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 7.0,
"form": 3.457,
"final": 4.9238,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 6.149,
"final": 6.9153,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.037,
"final": 1.6077,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.31,
"final": 4.1817,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.872,
"final": 0.511,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.7269,
"final": 5.7269,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5069,
"final": 1.5069,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 35,
"H": 63,
"BB": 20,
"SO": 44,
"HR": 7,
"ERA": 5.526315789473685,
"WHIP": 1.456140350877193,
"K9": 6.947368421052633,
"HR9": 1.105263157894737,
"games_pitched": 10,
"quality_starts": 5,
"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-06T00:00:00"
},
"recent_form_boost": 1.1280505796039322,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 7.0,
"predicted_H": 8.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
}
},
{
"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": 7,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663903",
"player_name": "Brady Singer",
"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": 1.0,
"predicted_ER": 7.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 7.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": 7.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 7.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.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": "CIN",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 611.0,
"runs_allowed": 753.0,
"run_differential": -142.0,
"run_differential_per_game": -0.966,
"avg_runs_scored": 4.1565,
"avg_runs_allowed": 5.1224,
"offense_index": 0.9233,
"defense_index": 0.8788,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 7.5,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.179
},
"opponent": {
"team": "MIL",
"games": 148,
"wins": 92,
"losses": 56,
"win_pct": 0.6216,
"runs_scored": 762.0,
"runs_allowed": 570.0,
"run_differential": 192.0,
"run_differential_per_game": 1.2973,
"avg_runs_scored": 5.1486,
"avg_runs_allowed": 3.8514,
"offense_index": 1.1437,
"defense_index": 1.1689,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 7.6,
"avg_runs_allowed": 4.7,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.3319
},
"edges": {
"quality_edge": -0.5109,
"offense_edge": -0.0767,
"opponent_offense_edge": 0.1437,
"defense_strength": -0.1212,
"opponent_defense_weakness": -0.1689,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9702,
"run_prevention": 1.0607,
"strikeout": 0.9732
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663903",
"profile": {
"available": true,
"pitcher_id": "663903",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 621.0,
"k_percent": 18.2,
"bb_percent": 7.8,
"woba": 0.356,
"xwoba": 0.348,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 42.8,
"avg_best_speed": 81.2426,
"avg_hyper_speed": 94.8827,
"whiff_percent": 24.4,
"swing_percent": 44.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.8603,
"command_and_miss": -0.2043,
"regression_edge": 0.2286,
"xwoba_edge": -1.0571,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.6857,
"whiff_edge": -0.0857,
"bb_edge": 0.35,
"pitch_design_score": -0.1413
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663903",
"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": 87.32524347224859,
"release_spin_rate": 2382.6721024043113,
"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": 87.32524347224859,
"release_spin_rate": 2382.6721024043113,
"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.3252,
"release_spin_rate": 2382.6721,
"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.1413,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0095,
"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.5233,
"sample_weight": 1.0,
"run_prevention_factor": 1.0445,
"strikeout_factor": 0.9749,
"walk_factor": 0.972,
"homer_factor": 1.1018,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663903",
"espn_id": 41172,
"player_name": "Brady Singer",
"team": "CIN",
"role": "pitcher",
"espn_rank": 181,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 181,
"gp_value": 28.0,
"gp_rank": 270,
"gs_value": 28.0,
"gs_rank": 31,
"qs_value": 10.0,
"qs_rank": 59,
"era_value": 5.0318,
"era_rank": null,
"w_value": 6.0,
"w_rank": 108,
"l_value": 13.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 146.2,
"ip_rank": 51,
"h_value": 164.0,
"h_rank": 9,
"er_value": 82.0,
"er_rank": 12,
"hr_value": 27.0,
"hr_rank": 6,
"bb_value": 51.0,
"bb_rank": 39,
"k_value": 120.0,
"k_rank": 71,
"k_per_9_value": 7.363636,
"k_per_9_rank": 37.0,
"whip_value": 1.4659,
"whip_rank": null,
"war_value": 0.97,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0445,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0445,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1018,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9749,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 8,
"predicted_R": 7,
"predicted_ER": 7,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CIN@MIL | home | Shane Drohan | Shane Drohan | True | 5.0 | 3.2 | -4 | 2 | 5 | 3 | 4/5 | 1/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.0932944606414,
"WHIP": 1.3119533527696794,
"IP": 114.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.157,
"recent_avg_IP": 4.867,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1851,
"sample_weight": 1.0,
"run_prevention_factor": 0.9843,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0136,
"regression_flag": "neutral",
"k_percent": 23.8,
"bb_percent": 8.1,
"woba": 0.319,
"xwoba": 0.297,
"barrel_percent": 8.7,
"hard_hit_percent": 37.5,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 230,
"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": "675660",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 12.0,
"R": 12.0,
"H": 23.0,
"BB": 11.0,
"SO": 22.0,
"HR": 3.0,
"BF": 94.0,
"Pitches": 384.0
},
"per_game": {
"IP": 4.1,
"ER": 2.4,
"R": 2.4,
"H": 4.6,
"BB": 2.2,
"SO": 4.4,
"HR": 0.6,
"BF": 18.8,
"Pitches": 76.8
},
"rates": {
"ERA": 5.0625,
"WHIP": 1.5938,
"ER_per_IP": 0.5625,
"H_per_IP": 1.07812,
"BB_per_IP": 0.51562,
"SO_per_IP": 1.03125,
"HR_per_IP": 0.14062
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 31.0,
"R": 31.0,
"H": 52.0,
"BB": 19.0,
"SO": 54.0,
"HR": 7.0,
"BF": 217.0,
"Pitches": 829.0
},
"per_game": {
"IP": 5.0,
"ER": 3.1,
"R": 3.1,
"H": 5.2,
"BB": 1.9,
"SO": 5.4,
"HR": 0.7,
"BF": 21.7,
"Pitches": 82.9
},
"rates": {
"ERA": 5.5066,
"WHIP": 1.4013,
"ER_per_IP": 0.61184,
"H_per_IP": 1.02632,
"BB_per_IP": 0.375,
"SO_per_IP": 1.06579,
"HR_per_IP": 0.13816
}
},
"season": {
"games": 28,
"totals": {
"IP": 114.1,
"ER": 52.0,
"R": 57.0,
"H": 111.0,
"BB": 39.0,
"SO": 115.0,
"HR": 12.0,
"BF": 484.0,
"Pitches": 1839.0
},
"per_game": {
"IP": 4.0,
"ER": 1.8571,
"R": 2.0357,
"H": 3.9643,
"BB": 1.3929,
"SO": 4.1071,
"HR": 0.4286,
"BF": 17.2857,
"Pitches": 65.6786
},
"rates": {
"ERA": 4.0933,
"WHIP": 1.312,
"ER_per_IP": 0.45481,
"H_per_IP": 0.97085,
"BB_per_IP": 0.34111,
"SO_per_IP": 1.00583,
"HR_per_IP": 0.10496
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.516,
"predicted_H": 4.706,
"predicted_BB": 1.932,
"predicted_SO": 4.683,
"predicted_HR": 0.616,
"predicted_ERA": 4.9492,
"predicted_WHIP": 1.4508
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.516,
"final": 2.3024,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.706,
"final": 4.4137,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.932,
"final": 1.5461,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.683,
"final": 4.8142,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.616,
"final": 0.361,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9492,
"final": 4.9492,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4508,
"final": 1.4508,
"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": 52,
"BB": 19,
"SO": 54,
"HR": 7,
"ERA": 5.506578947368421,
"WHIP": 1.4013157894736843,
"K9": 9.592105263157896,
"HR9": 1.243421052631579,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.1244595708320022,
"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": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675660",
"player_name": "Shane Drohan",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "MIL",
"games": 148,
"wins": 92,
"losses": 56,
"win_pct": 0.6216,
"runs_scored": 762.0,
"runs_allowed": 570.0,
"run_differential": 192.0,
"run_differential_per_game": 1.2973,
"avg_runs_scored": 5.1486,
"avg_runs_allowed": 3.8514,
"offense_index": 1.1437,
"defense_index": 1.1689,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 7.6,
"avg_runs_allowed": 4.7,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.3319
},
"opponent": {
"team": "CIN",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 611.0,
"runs_allowed": 753.0,
"run_differential": -142.0,
"run_differential_per_game": -0.966,
"avg_runs_scored": 4.1565,
"avg_runs_allowed": 5.1224,
"offense_index": 0.9233,
"defense_index": 0.8788,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 7.5,
"run_differential": -34.0
},
"available": true,
"quality_score": -0.179
},
"edges": {
"quality_edge": 0.5109,
"offense_edge": 0.1437,
"opponent_offense_edge": -0.0767,
"defense_strength": 0.1689,
"opponent_defense_weakness": 0.1212,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0286,
"run_prevention": 0.9453,
"strikeout": 1.0215
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675660",
"profile": {
"available": true,
"pitcher_id": "675660",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 462.0,
"k_percent": 23.8,
"bb_percent": 8.1,
"woba": 0.319,
"xwoba": 0.297,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 37.5,
"avg_best_speed": 77.1542,
"avg_hyper_speed": 93.8027,
"whiff_percent": 27.3,
"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.0808,
"command_and_miss": 0.2857,
"regression_edge": 0.6286,
"xwoba_edge": 0.4,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.0714,
"whiff_edge": 0.3286,
"bb_edge": 0.275,
"pitch_design_score": 0.033
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675660",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 80,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.43855482251466,
"release_spin_rate": 2558.4802301859963,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 80,
"pitch_usage": 0.0,
"release_speed": 90.43855482251466,
"release_spin_rate": 2558.4802301859963,
"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.4386,
"release_spin_rate": 2558.4802,
"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.033,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2358,
"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.1851,
"sample_weight": 1.0,
"run_prevention_factor": 0.9843,
"strikeout_factor": 1.0234,
"walk_factor": 0.978,
"homer_factor": 1.0136,
"woba_minus_xwoba": 0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675660",
"espn_id": 4315203,
"player_name": "Shane Drohan",
"team": "MIL",
"role": "pitcher",
"espn_rank": 230,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 230,
"gp_value": 28.0,
"gp_rank": 270,
"gs_value": 17.0,
"gs_rank": 124,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 4.0932,
"era_rank": null,
"w_value": 7.0,
"w_rank": 86,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 1.0,
"sv_rank": 140,
"hld_value": 2.0,
"hld_rank": 231,
"ip_value": 114.1,
"ip_rank": 103,
"h_value": 111.0,
"h_rank": 99,
"er_value": 52.0,
"er_rank": 101,
"hr_value": 12.0,
"hr_rank": 135,
"bb_value": 39.0,
"bb_rank": 94,
"k_value": 115.0,
"k_rank": 80,
"k_per_9_value": 9.052478,
"k_per_9_rank": 20.0,
"whip_value": 1.3119,
"whip_rank": null,
"war_value": 0.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9843,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9843,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0136,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0234,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CLE@MIN | away | Daniel Espino | Daniel Espino | True | 3.0 | 2.0 | -3 | 3 | 0 | -3 | 5/1 | 2/0 | 4/2 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 2.7,
"WHIP": 1.3,
"IP": 10.0,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 1.111,
"recent_avg_IP": 1.333,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6044,
"sample_weight": 0.45,
"run_prevention_factor": 0.9486,
"strikeout_factor": 1.0818,
"walk_factor": 1.0009,
"homer_factor": 0.9525,
"regression_flag": "positive_pitcher_regression",
"k_percent": 41.9,
"bb_percent": 9.3,
"woba": 0.287,
"xwoba": 0.235,
"barrel_percent": 4.8,
"hard_hit_percent": 38.1,
"whiff_percent": 39.3
},
"espn_rank": {
"rank": 357,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.018,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2875,
"prior_weight": 0.7125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682982",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.2,
"ER": 0.0,
"R": 0.0,
"H": 5.0,
"BB": 2.0,
"SO": 11.0,
"HR": 0.0,
"BF": 27.0,
"Pitches": 112.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.4,
"SO": 2.2,
"HR": 0.0,
"BF": 5.4,
"Pitches": 22.4
},
"rates": {
"ERA": 0.0,
"WHIP": 1.05,
"ER_per_IP": 0.0,
"H_per_IP": 0.75,
"BB_per_IP": 0.3,
"SO_per_IP": 1.65,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 10.0,
"ER": 3.0,
"R": 3.0,
"H": 9.0,
"BB": 4.0,
"SO": 18.0,
"HR": 1.0,
"BF": 43.0,
"Pitches": 178.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3333,
"R": 0.3333,
"H": 1.0,
"BB": 0.4444,
"SO": 2.0,
"HR": 0.1111,
"BF": 4.7778,
"Pitches": 19.7778
},
"rates": {
"ERA": 2.7,
"WHIP": 1.3,
"ER_per_IP": 0.3,
"H_per_IP": 0.9,
"BB_per_IP": 0.4,
"SO_per_IP": 1.8,
"HR_per_IP": 0.1
}
},
"season": {
"games": 9,
"totals": {
"IP": 10.0,
"ER": 3.0,
"R": 3.0,
"H": 9.0,
"BB": 4.0,
"SO": 18.0,
"HR": 1.0,
"BF": 43.0,
"Pitches": 178.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3333,
"R": 0.3333,
"H": 1.0,
"BB": 0.4444,
"SO": 2.0,
"HR": 0.1111,
"BF": 4.7778,
"Pitches": 19.7778
},
"rates": {
"ERA": 2.7,
"WHIP": 1.3,
"ER_per_IP": 0.3,
"H_per_IP": 0.9,
"BB_per_IP": 0.4,
"SO_per_IP": 1.8,
"HR_per_IP": 0.1
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.252,
"predicted_H": 2.957,
"predicted_BB": 1.155,
"predicted_SO": 3.712,
"predicted_HR": 0.368,
"predicted_ERA": 3.5253,
"predicted_WHIP": 1.2865
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.651,
"form_weight": 0.349,
"form_reliability": 0.2875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.018,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2875,
"prior_weight": 0.7125
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.252,
"final": 2.39,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.957,
"final": 4.2871,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.155,
"final": 1.7051,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.712,
"final": 3.8995,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.368,
"final": 0.7795,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5253,
"final": 3.5253,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2865,
"final": 1.2865,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 3,
"H": 9,
"BB": 4,
"SO": 18,
"HR": 1,
"ERA": 2.7,
"WHIP": 1.3,
"K9": 16.2,
"HR9": 0.9,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.9363999469330037,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.018,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2875,
"prior_weight": 0.7125
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682982",
"player_name": "Daniel Espino",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 3.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 148,
"wins": 75,
"losses": 73,
"win_pct": 0.5068,
"runs_scored": 603.0,
"runs_allowed": 616.0,
"run_differential": -13.0,
"run_differential_per_game": -0.0878,
"avg_runs_scored": 4.0743,
"avg_runs_allowed": 4.1622,
"offense_index": 0.9051,
"defense_index": 1.0816,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.6,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0049
},
"opponent": {
"team": "MIN",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 677.0,
"runs_allowed": 733.0,
"run_differential": -56.0,
"run_differential_per_game": -0.381,
"avg_runs_scored": 4.6054,
"avg_runs_allowed": 4.9864,
"offense_index": 1.023,
"defense_index": 0.9028,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.1076
},
"edges": {
"quality_edge": 0.1027,
"offense_edge": -0.0949,
"opponent_offense_edge": 0.023,
"defense_strength": 0.0816,
"opponent_defense_weakness": 0.0972,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0056,
"run_prevention": 0.9904,
"strikeout": 1.0012
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682982",
"profile": {
"available": true,
"pitcher_id": "682982",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 39.0,
"k_percent": 41.9,
"bb_percent": 9.3,
"woba": 0.287,
"xwoba": 0.235,
"sweet_spot_percent": 28.6,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 38.1,
"avg_best_speed": 72.7041,
"avg_hyper_speed": 93.1303,
"whiff_percent": 39.3,
"swing_percent": 47.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": 1.2441,
"command_and_miss": 1.835,
"regression_edge": 1.4857,
"xwoba_edge": 2.1714,
"barrel_edge": 0.5111,
"hard_hit_edge": -0.0143,
"whiff_edge": 2.0429,
"bb_edge": -0.025,
"pitch_design_score": 0.2601
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682982",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 23,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 23,
"pitch_usage": 0.0,
"release_speed": 94.49281380717235,
"release_spin_rate": 2419.600543991827,
"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": 23,
"pitch_usage": 0.0,
"release_speed": 94.49281380717235,
"release_spin_rate": 2419.600543991827,
"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.4928,
"release_spin_rate": 2419.6005,
"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.2601,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.8575,
"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.6044,
"sample_weight": 0.45,
"run_prevention_factor": 0.9486,
"strikeout_factor": 1.0818,
"walk_factor": 1.0009,
"homer_factor": 0.9525,
"woba_minus_xwoba": 0.052,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "682982",
"espn_id": 42438,
"player_name": "Daniel Espino",
"team": "CLE",
"role": "pitcher",
"espn_rank": 357,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 357,
"gp_value": 9.0,
"gp_rank": 545,
"gs_value": 0.0,
"gs_rank": 367,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 2.7,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 0.0,
"l_rank": 574,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 10.0,
"ip_rank": 622,
"h_value": 9.0,
"h_rank": 651,
"er_value": 3.0,
"er_rank": 712,
"hr_value": 1.0,
"hr_rank": 614,
"bb_value": 4.0,
"bb_rank": 653,
"k_value": 18.0,
"k_rank": 506,
"k_per_9_value": 16.199999,
"k_per_9_rank": 21.0,
"whip_value": 1.3,
"whip_rank": null,
"war_value": 0.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9769,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9769,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 1.0004,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9786,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0368,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 73,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_CLE@MIN | home | Connor Prielipp | Connor Prielipp | True | 5.0 | 5.1 | 1 | 4 | 3 | -1 | 7/5 | 3/0 | 0/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.25,
"WHIP": 1.3611111111111112,
"IP": 108.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.211,
"recent_avg_IP": 5.333,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0319,
"sample_weight": 1.0,
"run_prevention_factor": 1.0027,
"strikeout_factor": 1.012,
"walk_factor": 0.988,
"homer_factor": 1.0287,
"regression_flag": "neutral",
"k_percent": 24.8,
"bb_percent": 8.6,
"woba": 0.329,
"xwoba": 0.313,
"barrel_percent": 7.3,
"hard_hit_percent": 42.1,
"whiff_percent": 24.3
},
"espn_rank": {
"rank": 689,
"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": "687570",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 19.0,
"R": 19.0,
"H": 30.0,
"BB": 8.0,
"SO": 28.0,
"HR": 3.0,
"BF": 111.0,
"Pitches": 409.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 3.8,
"H": 6.0,
"BB": 1.6,
"SO": 5.6,
"HR": 0.6,
"BF": 22.2,
"Pitches": 81.8
},
"rates": {
"ERA": 6.75,
"WHIP": 1.5,
"ER_per_IP": 0.75,
"H_per_IP": 1.18421,
"BB_per_IP": 0.31579,
"SO_per_IP": 1.10526,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 31.0,
"R": 31.0,
"H": 51.0,
"BB": 17.0,
"SO": 61.0,
"HR": 8.0,
"BF": 220.0,
"Pitches": 841.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.1,
"H": 5.1,
"BB": 1.7,
"SO": 6.1,
"HR": 0.8,
"BF": 22.0,
"Pitches": 84.1
},
"rates": {
"ERA": 5.3312,
"WHIP": 1.2994,
"ER_per_IP": 0.59236,
"H_per_IP": 0.97452,
"BB_per_IP": 0.32484,
"SO_per_IP": 1.16561,
"HR_per_IP": 0.15287
}
},
"season": {
"games": 21,
"totals": {
"IP": 108.0,
"ER": 63.0,
"R": 71.0,
"H": 107.0,
"BB": 40.0,
"SO": 116.0,
"HR": 14.0,
"BF": 467.0,
"Pitches": 1821.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.381,
"H": 5.0952,
"BB": 1.9048,
"SO": 5.5238,
"HR": 0.6667,
"BF": 22.2381,
"Pitches": 86.7143
},
"rates": {
"ERA": 5.25,
"WHIP": 1.3611,
"ER_per_IP": 0.58333,
"H_per_IP": 0.99074,
"BB_per_IP": 0.37037,
"SO_per_IP": 1.07407,
"HR_per_IP": 0.12963
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.255,
"predicted_H": 5.432,
"predicted_BB": 1.742,
"predicted_SO": 5.6,
"predicted_HR": 0.698,
"predicted_ERA": 5.6797,
"predicted_WHIP": 1.3907
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.255,
"final": 3.5763,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.432,
"final": 6.1082,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.742,
"final": 2.2845,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 5.6,
"final": 3.185,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.698,
"final": 1.2595,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6797,
"final": 5.6797,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3907,
"final": 1.3907,
"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": 31,
"H": 51,
"BB": 17,
"SO": 61,
"HR": 8,
"ERA": 5.331210191082803,
"WHIP": 1.299363057324841,
"K9": 10.490445859872612,
"HR9": 1.3757961783439492,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-07T00:00:00"
},
"recent_form_boost": 1.1021817674461492,
"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": 7.0,
"predicted_BB": 3.0,
"predicted_SO": 0.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 7,
"predicted_BB": 3,
"predicted_SO": 0,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687570",
"player_name": "Connor Prielipp",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": "MIN",
"games": 147,
"wins": 69,
"losses": 78,
"win_pct": 0.4694,
"runs_scored": 677.0,
"runs_allowed": 733.0,
"run_differential": -56.0,
"run_differential_per_game": -0.381,
"avg_runs_scored": 4.6054,
"avg_runs_allowed": 4.9864,
"offense_index": 1.023,
"defense_index": 0.9028,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.1076
},
"opponent": {
"team": "CLE",
"games": 148,
"wins": 75,
"losses": 73,
"win_pct": 0.5068,
"runs_scored": 603.0,
"runs_allowed": 616.0,
"run_differential": -13.0,
"run_differential_per_game": -0.0878,
"avg_runs_scored": 4.0743,
"avg_runs_allowed": 4.1622,
"offense_index": 0.9051,
"defense_index": 1.0816,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 5.6,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0049
},
"edges": {
"quality_edge": -0.1027,
"offense_edge": 0.023,
"opponent_offense_edge": -0.0949,
"defense_strength": -0.0972,
"opponent_defense_weakness": -0.0816,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 0.9997,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687570",
"profile": {
"available": true,
"pitcher_id": "687570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 446.0,
"k_percent": 24.8,
"bb_percent": 8.6,
"woba": 0.329,
"xwoba": 0.313,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 42.1,
"avg_best_speed": 80.5154,
"avg_hyper_speed": 94.3947,
"whiff_percent": 24.3,
"swing_percent": 47.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.2211,
"command_and_miss": 0.175,
"regression_edge": 0.4571,
"xwoba_edge": -0.0571,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.1,
"bb_edge": 0.15,
"pitch_design_score": 0.0093
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687570",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.015043469333,
"release_spin_rate": 2596.2713725880703,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.015043469333,
"release_spin_rate": 2596.2713725880703,
"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.015,
"release_spin_rate": 2596.2714,
"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.0093,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0664,
"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.0319,
"sample_weight": 1.0,
"run_prevention_factor": 1.0027,
"strikeout_factor": 1.012,
"walk_factor": 0.988,
"homer_factor": 1.0287,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687570",
"espn_id": 4620001,
"player_name": "Connor Prielipp",
"team": "MIN",
"role": "pitcher",
"espn_rank": 689,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 689,
"gp_value": 21.0,
"gp_rank": 380,
"gs_value": 19.0,
"gs_rank": 105,
"qs_value": 3.0,
"qs_rank": 141,
"era_value": 5.25,
"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": 108.0,
"ip_rank": 115,
"h_value": 107.0,
"h_rank": 110,
"er_value": 63.0,
"er_rank": 56,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 40.0,
"bb_rank": 86,
"k_value": 116.0,
"k_rank": 79,
"k_per_9_value": 9.666667,
"k_per_9_rank": 18.0,
"whip_value": 1.3611,
"whip_rank": null,
"war_value": -0.25,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0027,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0027,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0287,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.012,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 0,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 26,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_COL@DET | away | Tanner Gordon | Tanner Gordon | True | 5.0 | 4.0 | -3 | 3 | 4 | 1 | 5/10 | 1/1 | 10/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.4,
"WHIP": 1.425,
"IP": 93.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.4,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2419,
"sample_weight": 1.0,
"run_prevention_factor": 1.0206,
"strikeout_factor": 0.9646,
"walk_factor": 0.9,
"homer_factor": 1.0853,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.7,
"bb_percent": 4.2,
"woba": 0.368,
"xwoba": 0.323,
"barrel_percent": 10.0,
"hard_hit_percent": 42.1,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 197,
"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": "685299",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 12.0,
"R": 12.0,
"H": 29.0,
"BB": 4.0,
"SO": 18.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 375.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 5.8,
"BB": 0.8,
"SO": 3.6,
"HR": 0.4,
"BF": 21.8,
"Pitches": 75.0
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.2692,
"ER_per_IP": 0.46154,
"H_per_IP": 1.11538,
"BB_per_IP": 0.15385,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 21.0,
"R": 23.0,
"H": 54.0,
"BB": 7.0,
"SO": 30.0,
"HR": 6.0,
"BF": 201.0,
"Pitches": 663.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 2.3,
"H": 5.4,
"BB": 0.7,
"SO": 3.0,
"HR": 0.6,
"BF": 20.1,
"Pitches": 66.3
},
"rates": {
"ERA": 3.9375,
"WHIP": 1.2708,
"ER_per_IP": 0.4375,
"H_per_IP": 1.125,
"BB_per_IP": 0.14583,
"SO_per_IP": 0.625,
"HR_per_IP": 0.125
}
},
"season": {
"games": 21,
"totals": {
"IP": 93.1,
"ER": 56.0,
"R": 58.0,
"H": 116.0,
"BB": 17.0,
"SO": 76.0,
"HR": 17.0,
"BF": 406.0,
"Pitches": 1423.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6667,
"R": 2.7619,
"H": 5.5238,
"BB": 0.8095,
"SO": 3.619,
"HR": 0.8095,
"BF": 19.3333,
"Pitches": 67.7619
},
"rates": {
"ERA": 5.4,
"WHIP": 1.425,
"ER_per_IP": 0.6,
"H_per_IP": 1.24286,
"BB_per_IP": 0.18214,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.18214
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.418,
"predicted_H": 5.538,
"predicted_BB": 0.986,
"predicted_SO": 3.692,
"predicted_HR": 0.602,
"predicted_ERA": 4.3663,
"predicted_WHIP": 1.3091
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.418,
"final": 2.669,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.538,
"final": 5.306,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.986,
"final": 0.992,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 10.0,
"form": 3.692,
"final": 6.4123,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.602,
"final": 0.7736,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3663,
"final": 4.3663,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3091,
"final": 1.3091,
"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": 21,
"H": 54,
"BB": 7,
"SO": 30,
"HR": 6,
"ERA": 3.9375,
"WHIP": 1.2708333333333333,
"K9": 5.625,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9446761278495461,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 10.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 10,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "685299",
"player_name": "Tanner Gordon",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 10.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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 10.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 10.0,
"after": 10.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": "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": "685299",
"profile": {
"available": true,
"pitcher_id": "685299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 377.0,
"k_percent": 18.7,
"bb_percent": 4.2,
"woba": 0.368,
"xwoba": 0.323,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 42.1,
"avg_best_speed": 80.9796,
"avg_hyper_speed": 94.534,
"whiff_percent": 22.1,
"swing_percent": 53.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.6029,
"command_and_miss": -0.1071,
"regression_edge": 1.2857,
"xwoba_edge": -0.3429,
"barrel_edge": -0.6444,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.4143,
"bb_edge": 1.25,
"pitch_design_score": -0.0627
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "685299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 88.72938964890997,
"release_spin_rate": 2168.4774054367754,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 88.72938964890997,
"release_spin_rate": 2168.4774054367754,
"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.7294,
"release_spin_rate": 2168.4774,
"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.0627,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4478,
"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.2419,
"sample_weight": 1.0,
"run_prevention_factor": 1.0206,
"strikeout_factor": 0.9646,
"walk_factor": 0.9,
"homer_factor": 1.0853,
"woba_minus_xwoba": 0.045,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "685299",
"espn_id": 4415658,
"player_name": "Tanner Gordon",
"team": "COL",
"role": "pitcher",
"espn_rank": 197,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 197,
"gp_value": 21.0,
"gp_rank": 380,
"gs_value": 9.0,
"gs_rank": 180,
"qs_value": 1.0,
"qs_rank": 178,
"era_value": 5.4,
"era_rank": null,
"w_value": 1.0,
"w_rank": 414,
"l_value": 4.0,
"l_rank": 189,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 93.1,
"ip_rank": 138,
"h_value": 116.0,
"h_rank": 90,
"er_value": 56.0,
"er_rank": 84,
"hr_value": 17.0,
"hr_rank": 71,
"bb_value": 17.0,
"bb_rank": 347,
"k_value": 76.0,
"k_rank": 161,
"k_per_9_value": 7.328572,
"k_per_9_rank": 31.0,
"whip_value": 1.425,
"whip_rank": null,
"war_value": 0.9,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0206,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0206,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0853,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9646,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 10,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_COL@DET | home | Andrew Sears | Andrew Sears | True | 4.0 | 4.1 | 1 | 3 | 4 | 1 | 2/7 | 5/1 | 7/5 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 4.378378378378378,
"WHIP": 1.2162162162162162,
"IP": 12.1,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.134,
"sample_weight": 0.45,
"run_prevention_factor": 0.9886,
"strikeout_factor": 0.9887,
"walk_factor": 0.9703,
"homer_factor": 0.9535,
"regression_flag": "positive_pitcher_regression",
"k_percent": 15.7,
"bb_percent": 5.9,
"woba": 0.324,
"xwoba": 0.28,
"barrel_percent": 5.1,
"hard_hit_percent": 30.8,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 427,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "808825",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 12.1,
"ER": 6.0,
"R": 6.0,
"H": 12.0,
"BB": 3.0,
"SO": 8.0,
"HR": 1.0,
"BF": 51.0,
"Pitches": 209.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.0,
"SO": 2.6667,
"HR": 0.3333,
"BF": 17.0,
"Pitches": 69.6667
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.2162,
"ER_per_IP": 0.48649,
"H_per_IP": 0.97297,
"BB_per_IP": 0.24324,
"SO_per_IP": 0.64865,
"HR_per_IP": 0.08108
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 12.1,
"ER": 6.0,
"R": 6.0,
"H": 12.0,
"BB": 3.0,
"SO": 8.0,
"HR": 1.0,
"BF": 51.0,
"Pitches": 209.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.0,
"SO": 2.6667,
"HR": 0.3333,
"BF": 17.0,
"Pitches": 69.6667
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.2162,
"ER_per_IP": 0.48649,
"H_per_IP": 0.97297,
"BB_per_IP": 0.24324,
"SO_per_IP": 0.64865,
"HR_per_IP": 0.08108
}
},
"season": {
"games": 3,
"totals": {
"IP": 12.1,
"ER": 6.0,
"R": 6.0,
"H": 12.0,
"BB": 3.0,
"SO": 8.0,
"HR": 1.0,
"BF": 51.0,
"Pitches": 209.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.0,
"SO": 2.6667,
"HR": 0.3333,
"BF": 17.0,
"Pitches": 69.6667
},
"rates": {
"ERA": 4.3784,
"WHIP": 1.2162,
"ER_per_IP": 0.48649,
"H_per_IP": 0.97297,
"BB_per_IP": 0.24324,
"SO_per_IP": 0.64865,
"HR_per_IP": 0.08108
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.299,
"predicted_H": 4.499,
"predicted_BB": 1.493,
"predicted_SO": 3.845,
"predicted_HR": 0.563,
"predicted_ERA": 4.4731,
"predicted_WHIP": 1.2956
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.299,
"final": 2.7295,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.499,
"final": 2.9645,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.493,
"final": 3.6465,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.845,
"final": 5.7824,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.563,
"final": 0.2173,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4731,
"final": 4.4731,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2956,
"final": 1.2956,
"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": 12.1,
"ER": 6,
"H": 12,
"BB": 3,
"SO": 8,
"HR": 1,
"ERA": 4.378378378378378,
"WHIP": 1.2162162162162162,
"K9": 5.837837837837838,
"HR9": 0.7297297297297297,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 0.99713034417127,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 5.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 5,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808825",
"player_name": "Andrew Sears",
"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": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.0,
"after": 4.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"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": "808825",
"profile": {
"available": true,
"pitcher_id": "808825",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 28.0,
"k_percent": 15.7,
"bb_percent": 5.9,
"woba": 0.324,
"xwoba": 0.28,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 30.8,
"avg_best_speed": 81.7548,
"avg_hyper_speed": 93.5225,
"whiff_percent": 26.9,
"swing_percent": 44.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.3837,
"command_and_miss": -0.145,
"regression_edge": 1.2571,
"xwoba_edge": 0.8857,
"barrel_edge": 0.4444,
"hard_hit_edge": 1.0286,
"whiff_edge": 0.2714,
"bb_edge": 0.825,
"pitch_design_score": -0.0652
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808825",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 58,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 58,
"pitch_usage": 0.0,
"release_speed": 88.68487773487773,
"release_spin_rate": 2192.3793436293436,
"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": 58,
"pitch_usage": 0.0,
"release_speed": 88.68487773487773,
"release_spin_rate": 2192.3793436293436,
"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.6849,
"release_spin_rate": 2192.3793,
"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.0652,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4656,
"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.134,
"sample_weight": 0.45,
"run_prevention_factor": 0.9886,
"strikeout_factor": 0.9887,
"walk_factor": 0.9703,
"homer_factor": 0.9535,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "808825",
"espn_id": 5140040,
"player_name": "Andrew Sears",
"team": "DET",
"role": "pitcher",
"espn_rank": 427,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 427,
"gp_value": 3.0,
"gp_rank": 714,
"gs_value": 1.0,
"gs_rank": 297,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 4.3783,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 1.0,
"l_rank": 429,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 12.1,
"ip_rank": 592,
"h_value": 12.0,
"h_rank": 607,
"er_value": 6.0,
"er_rank": 633,
"hr_value": 1.0,
"hr_rank": 614,
"bb_value": 3.0,
"bb_rank": 683,
"k_value": 8.0,
"k_rank": 625,
"k_per_9_value": 5.8378377,
"k_per_9_rank": 28.0,
"whip_value": 1.2162,
"whip_rank": null,
"war_value": 0.07,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9949,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9949,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9866,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9791,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9949,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "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."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_HOU@TB | away | Peter Lambert | Peter Lambert | True | 5.1 | 6.0 | 2 | 1 | 3 | 2 | 2/6 | 0/0 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6730310262529837,
"WHIP": 1.2315035799522673,
"IP": 139.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.587,
"recent_avg_IP": 5.2,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.194,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0097,
"walk_factor": 1.004,
"homer_factor": 0.9635,
"regression_flag": "neutral",
"k_percent": 23.0,
"bb_percent": 9.4,
"woba": 0.295,
"xwoba": 0.296,
"barrel_percent": 6.7,
"hard_hit_percent": 35.1,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 34,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663567",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 18.0,
"R": 19.0,
"H": 29.0,
"BB": 12.0,
"SO": 26.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 3.8,
"H": 5.8,
"BB": 2.4,
"SO": 5.2,
"HR": 0.4,
"BF": 24.6,
"Pitches": 95.8
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.5769,
"ER_per_IP": 0.69231,
"H_per_IP": 1.11538,
"BB_per_IP": 0.46154,
"SO_per_IP": 1.0,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 27.0,
"R": 29.0,
"H": 53.0,
"BB": 23.0,
"SO": 56.0,
"HR": 3.0,
"BF": 241.0,
"Pitches": 942.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.9,
"H": 5.3,
"BB": 2.3,
"SO": 5.6,
"HR": 0.3,
"BF": 24.1,
"Pitches": 94.2
},
"rates": {
"ERA": 4.528,
"WHIP": 1.4161,
"ER_per_IP": 0.50311,
"H_per_IP": 0.98758,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.04348,
"HR_per_IP": 0.0559
}
},
"season": {
"games": 25,
"totals": {
"IP": 139.2,
"ER": 57.0,
"R": 59.0,
"H": 116.0,
"BB": 56.0,
"SO": 137.0,
"HR": 14.0,
"BF": 595.0,
"Pitches": 2368.0
},
"per_game": {
"IP": 5.2,
"ER": 2.28,
"R": 2.36,
"H": 4.64,
"BB": 2.24,
"SO": 5.48,
"HR": 0.56,
"BF": 23.8,
"Pitches": 94.72
},
"rates": {
"ERA": 3.673,
"WHIP": 1.2315,
"ER_per_IP": 0.40811,
"H_per_IP": 0.83055,
"BB_per_IP": 0.40095,
"SO_per_IP": 0.98091,
"HR_per_IP": 0.10024
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.008,
"predicted_H": 5.426,
"predicted_BB": 2.299,
"predicted_SO": 5.387,
"predicted_HR": 0.464,
"predicted_ERA": 5.0243,
"predicted_WHIP": 1.4335
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.008,
"final": 2.1638,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.426,
"final": 3.9856,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.299,
"final": 1.3324,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.387,
"final": 4.3834,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.464,
"final": 0.6894,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0243,
"final": 5.0243,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4335,
"final": 1.4335,
"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": 27,
"H": 53,
"BB": 23,
"SO": 56,
"HR": 3,
"ERA": 4.527950310559006,
"WHIP": 1.4161490683229812,
"K9": 9.391304347826086,
"HR9": 0.5031055900621118,
"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-06T00:00:00"
},
"recent_form_boost": 1.0147346811621756,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "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": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 564.0,
"k_percent": 23.0,
"bb_percent": 9.4,
"woba": 0.295,
"xwoba": 0.296,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 35.1,
"avg_best_speed": 77.7426,
"avg_hyper_speed": 93.4279,
"whiff_percent": 25.7,
"swing_percent": 48.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.3138,
"command_and_miss": 0.0893,
"regression_edge": -0.0286,
"xwoba_edge": 0.4286,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.4143,
"whiff_edge": 0.1,
"bb_edge": -0.05,
"pitch_design_score": -0.0261
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"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": 89.38302035315365,
"release_spin_rate": 2206.0158035592112,
"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": 89.38302035315365,
"release_spin_rate": 2206.0158035592112,
"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.383,
"release_spin_rate": 2206.0158,
"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.0261,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1864,
"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.194,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0097,
"walk_factor": 1.004,
"homer_factor": 0.9635,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663567",
"espn_id": 39898,
"player_name": "Peter Lambert",
"team": "HOU",
"role": "pitcher",
"espn_rank": 34,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 34,
"gp_value": 25.0,
"gp_rank": 327,
"gs_value": 25.0,
"gs_rank": 64,
"qs_value": 9.0,
"qs_rank": 65,
"era_value": 3.673,
"era_rank": null,
"w_value": 8.0,
"w_rank": 65,
"l_value": 8.0,
"l_rank": 62,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 139.2,
"ip_rank": 60,
"h_value": 116.0,
"h_rank": 90,
"er_value": 57.0,
"er_rank": 77,
"hr_value": 14.0,
"hr_rank": 109,
"bb_value": 56.0,
"bb_rank": 23,
"k_value": 137.0,
"k_rank": 49,
"k_per_9_value": 8.828162,
"k_per_9_rank": 22.0,
"whip_value": 1.2315,
"whip_rank": null,
"war_value": 3.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9835,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9835,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.004,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9635,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0097,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 85,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_HOU@TB | home | Ian Seymour | Ian Seymour | True | 5.0 | 6.0 | 3 | 2 | 2 | 0 | 2/4 | 3/1 | 6/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9455587392550147,
"WHIP": 1.1174785100286533,
"IP": 116.1,
"games_started": null,
"games_pitched": 42,
"role_avg_IP": 4.692,
"recent_avg_IP": 5.267,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2928,
"sample_weight": 1.0,
"run_prevention_factor": 0.9751,
"strikeout_factor": 1.0629,
"walk_factor": 0.952,
"homer_factor": 1.0276,
"regression_flag": "neutral",
"k_percent": 28.8,
"bb_percent": 6.8,
"woba": 0.313,
"xwoba": 0.295,
"barrel_percent": 10.0,
"hard_hit_percent": 36.2,
"whiff_percent": 29.2
},
"espn_rank": {
"rank": 320,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.472,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8244,
"prior_weight": 0.1756
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693855",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 15.0,
"R": 17.0,
"H": 30.0,
"BB": 3.0,
"SO": 34.0,
"HR": 9.0,
"BF": 113.0,
"Pitches": 434.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.4,
"H": 6.0,
"BB": 0.6,
"SO": 6.8,
"HR": 1.8,
"BF": 22.6,
"Pitches": 86.8
},
"rates": {
"ERA": 5.1923,
"WHIP": 1.2692,
"ER_per_IP": 0.57692,
"H_per_IP": 1.15385,
"BB_per_IP": 0.11538,
"SO_per_IP": 1.30769,
"HR_per_IP": 0.34615
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 23.0,
"R": 25.0,
"H": 51.0,
"BB": 9.0,
"SO": 65.0,
"HR": 12.0,
"BF": 216.0,
"Pitches": 841.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.5,
"H": 5.1,
"BB": 0.9,
"SO": 6.5,
"HR": 1.2,
"BF": 21.6,
"Pitches": 84.1
},
"rates": {
"ERA": 4.0065,
"WHIP": 1.1613,
"ER_per_IP": 0.44516,
"H_per_IP": 0.9871,
"BB_per_IP": 0.17419,
"SO_per_IP": 1.25806,
"HR_per_IP": 0.23226
}
},
"season": {
"games": 42,
"totals": {
"IP": 116.1,
"ER": 51.0,
"R": 56.0,
"H": 97.0,
"BB": 33.0,
"SO": 140.0,
"HR": 22.0,
"BF": 481.0,
"Pitches": 1876.0
},
"per_game": {
"IP": 2.2,
"ER": 1.2143,
"R": 1.3333,
"H": 2.3095,
"BB": 0.7857,
"SO": 3.3333,
"HR": 0.5238,
"BF": 11.4524,
"Pitches": 44.6667
},
"rates": {
"ERA": 3.9456,
"WHIP": 1.1175,
"ER_per_IP": 0.4384,
"H_per_IP": 0.83381,
"BB_per_IP": 0.28367,
"SO_per_IP": 1.20344,
"HR_per_IP": 0.18911
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.433,
"predicted_H": 4.937,
"predicted_BB": 0.991,
"predicted_SO": 5.859,
"predicted_HR": 1.22,
"predicted_ERA": 4.5283,
"predicted_WHIP": 1.2261
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4242,
"form_weight": 0.5758,
"form_reliability": 0.8244,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.472,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8244,
"prior_weight": 0.1756
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.433,
"final": 2.2493,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.937,
"final": 3.6912,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.991,
"final": 1.8432,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.859,
"final": 5.4946,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.22,
"final": 0.7025,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5283,
"final": 4.5283,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2261,
"final": 1.2261,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 23,
"H": 51,
"BB": 9,
"SO": 65,
"HR": 12,
"ERA": 4.006451612903225,
"WHIP": 1.161290322580645,
"K9": 11.32258064516129,
"HR9": 2.0903225806451613,
"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-06T00:00:00"
},
"recent_form_boost": 0.9496946090323417,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.472,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8244,
"prior_weight": 0.1756
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693855",
"player_name": "Ian Seymour",
"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": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "693855",
"profile": {
"available": true,
"pitcher_id": "693855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 461.0,
"k_percent": 28.8,
"bb_percent": 6.8,
"woba": 0.313,
"xwoba": 0.295,
"sweet_spot_percent": 35.6,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 36.2,
"avg_best_speed": 77.0506,
"avg_hyper_speed": 93.7092,
"whiff_percent": 29.2,
"swing_percent": 51.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": 0.1049,
"command_and_miss": 0.7671,
"regression_edge": 0.5143,
"xwoba_edge": 0.4571,
"barrel_edge": -0.6444,
"hard_hit_edge": 0.2571,
"whiff_edge": 0.6,
"bb_edge": 0.6,
"pitch_design_score": -0.211
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693855",
"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": 86.08029224449054,
"release_spin_rate": 1966.9009259620518,
"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": 86.08029224449054,
"release_spin_rate": 1966.9009259620518,
"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.0803,
"release_spin_rate": 1966.9009,
"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.211,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5075,
"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.2928,
"sample_weight": 1.0,
"run_prevention_factor": 0.9751,
"strikeout_factor": 1.0629,
"walk_factor": 0.952,
"homer_factor": 1.0276,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693855",
"espn_id": 4669425,
"player_name": "Ian Seymour",
"team": "TB",
"role": "pitcher",
"espn_rank": 320,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 320,
"gp_value": 43.0,
"gp_rank": 151,
"gs_value": 13.0,
"gs_rank": 155,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 4.3323,
"era_rank": null,
"w_value": 9.0,
"w_rank": 44,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 2.0,
"sv_rank": 93,
"hld_value": 10.0,
"hld_rank": 85,
"ip_value": 116.1,
"ip_rank": 98,
"h_value": 102.0,
"h_rank": 115,
"er_value": 56.0,
"er_rank": 84,
"hr_value": 22.0,
"hr_rank": 27,
"bb_value": 33.0,
"bb_rank": 140,
"k_value": 140.0,
"k_rank": 43,
"k_per_9_value": 10.830945,
"k_per_9_rank": 11.0,
"whip_value": 1.1604,
"whip_rank": null,
"war_value": 0.26,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9751,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9751,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0276,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0629,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +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/20260912_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"
}
} |
| 20260912 | 20260912_KC@BOS | away | Randy Dobnak | Randy Dobnak | True | 6.0 | 5.2 | -1 | 3 | 3 | 0 | 4/4 | 1/0 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5445026178010473,
"WHIP": 1.3193717277486912,
"IP": 63.2,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 5.4,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3748,
"sample_weight": 0.98,
"run_prevention_factor": 1.0319,
"strikeout_factor": 0.9384,
"walk_factor": 0.9882,
"homer_factor": 0.9965,
"regression_flag": "neutral",
"k_percent": 16.0,
"bb_percent": 8.6,
"woba": 0.307,
"xwoba": 0.335,
"barrel_percent": 5.0,
"hard_hit_percent": 40.3,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 70,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 63.2,
"season_ERA": 2.545,
"season_WHIP": 1.319,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.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": "677976",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 10.0,
"R": 10.0,
"H": 27.0,
"BB": 9.0,
"SO": 24.0,
"HR": 4.0,
"BF": 115.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.4,
"BB": 1.8,
"SO": 4.8,
"HR": 0.8,
"BF": 23.0,
"Pitches": 90.2
},
"rates": {
"ERA": 3.253,
"WHIP": 1.3012,
"ER_per_IP": 0.36145,
"H_per_IP": 0.9759,
"BB_per_IP": 0.3253,
"SO_per_IP": 0.86747,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 16.0,
"R": 16.0,
"H": 52.0,
"BB": 19.0,
"SO": 39.0,
"HR": 5.0,
"BF": 227.0,
"Pitches": 908.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.6,
"H": 5.2,
"BB": 1.9,
"SO": 3.9,
"HR": 0.5,
"BF": 22.7,
"Pitches": 90.8
},
"rates": {
"ERA": 2.6667,
"WHIP": 1.3148,
"ER_per_IP": 0.2963,
"H_per_IP": 0.96296,
"BB_per_IP": 0.35185,
"SO_per_IP": 0.72222,
"HR_per_IP": 0.09259
}
},
"season": {
"games": 12,
"totals": {
"IP": 63.2,
"ER": 18.0,
"R": 18.0,
"H": 61.0,
"BB": 23.0,
"SO": 43.0,
"HR": 6.0,
"BF": 268.0,
"Pitches": 1067.0
},
"per_game": {
"IP": 5.1,
"ER": 1.5,
"R": 1.5,
"H": 5.0833,
"BB": 1.9167,
"SO": 3.5833,
"HR": 0.5,
"BF": 22.3333,
"Pitches": 88.9167
},
"rates": {
"ERA": 2.5445,
"WHIP": 1.3194,
"ER_per_IP": 0.28272,
"H_per_IP": 0.95812,
"BB_per_IP": 0.36126,
"SO_per_IP": 0.67539,
"HR_per_IP": 0.09424
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.119,
"predicted_H": 5.462,
"predicted_BB": 1.974,
"predicted_SO": 4.655,
"predicted_HR": 0.705,
"predicted_ERA": 3.3837,
"predicted_WHIP": 1.3195
}
},
"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": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.119,
"final": 2.5368,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.462,
"final": 4.7686,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.974,
"final": 1.5121,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.655,
"final": 4.3444,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.705,
"final": 0.8449,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3837,
"final": 3.3837,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3195,
"final": 1.3195,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 16,
"H": 52,
"BB": 19,
"SO": 39,
"HR": 5,
"ERA": 2.6666666666666665,
"WHIP": 1.3148148148148147,
"K9": 6.499999999999999,
"HR9": 0.8333333333333333,
"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-06T00:00:00"
},
"recent_form_boost": 0.8028069148865832,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.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": "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": 4,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.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": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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
},
"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": 4.0,
"predicted_HR": 1.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": "KC",
"games": 148,
"wins": 66,
"losses": 82,
"win_pct": 0.4459,
"runs_scored": 632.0,
"runs_allowed": 719.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5878,
"avg_runs_scored": 4.2703,
"avg_runs_allowed": 4.8581,
"offense_index": 0.9486,
"defense_index": 0.9266,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.6,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1528
},
"opponent": {
"team": "BOS",
"games": 148,
"wins": 80,
"losses": 68,
"win_pct": 0.5405,
"runs_scored": 654.0,
"runs_allowed": 573.0,
"run_differential": 81.0,
"run_differential_per_game": 0.5473,
"avg_runs_scored": 4.4189,
"avg_runs_allowed": 3.8716,
"offense_index": 0.9816,
"defense_index": 1.1627,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.0,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.1013
},
"edges": {
"quality_edge": -0.2541,
"offense_edge": -0.0514,
"opponent_offense_edge": -0.0184,
"defense_strength": -0.0734,
"opponent_defense_weakness": -0.1627,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9884,
"run_prevention": 1.0171,
"strikeout": 0.9938
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 245.0,
"k_percent": 16.0,
"bb_percent": 8.6,
"woba": 0.307,
"xwoba": 0.335,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 40.3,
"avg_best_speed": 79.5709,
"avg_hyper_speed": 94.7259,
"whiff_percent": 20.0,
"swing_percent": 45.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": -0.2393,
"command_and_miss": -0.6057,
"regression_edge": -0.8,
"xwoba_edge": -0.6857,
"barrel_edge": 0.4667,
"hard_hit_edge": -0.3286,
"whiff_edge": -0.7143,
"bb_edge": 0.15,
"pitch_design_score": -0.1369
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"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": 87.4049729490764,
"release_spin_rate": 2025.628037316801,
"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": 87.4049729490764,
"release_spin_rate": 2025.628037316801,
"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.405,
"release_spin_rate": 2025.628,
"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.1369,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9776,
"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.3748,
"sample_weight": 0.98,
"run_prevention_factor": 1.0319,
"strikeout_factor": 0.9384,
"walk_factor": 0.9882,
"homer_factor": 0.9965,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677976",
"espn_id": 42214,
"player_name": "Randy Dobnak",
"team": "KC",
"role": "pitcher",
"espn_rank": 70,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 70,
"gp_value": 12.0,
"gp_rank": 497,
"gs_value": 10.0,
"gs_rank": 172,
"qs_value": 3.0,
"qs_rank": 141,
"era_value": 2.5445,
"era_rank": null,
"w_value": 3.0,
"w_rank": 246,
"l_value": 3.0,
"l_rank": 243,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 63.2,
"ip_rank": 213,
"h_value": 61.0,
"h_rank": 192,
"er_value": 18.0,
"er_rank": 360,
"hr_value": 6.0,
"hr_rank": 271,
"bb_value": 23.0,
"bb_rank": 248,
"k_value": 43.0,
"k_rank": 334,
"k_per_9_value": 6.0785336,
"k_per_9_rank": 42.0,
"whip_value": 1.3193,
"whip_rank": null,
"war_value": 2.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0313,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0313,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9884,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9966,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9396,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"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/20260912_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"
}
} |
| 20260912 | 20260912_KC@BOS | home | Ranger Suarez | Ranger Suarez | True | 5.1 | 7.0 | 5 | 3 | 1 | -2 | 5/5 | 1/0 | 7/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4438775510204085,
"WHIP": 1.2168367346938775,
"IP": 130.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.227,
"recent_avg_IP": 5.533,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.177,
"sample_weight": 1.0,
"run_prevention_factor": 0.985,
"strikeout_factor": 0.984,
"walk_factor": 0.964,
"homer_factor": 0.9277,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 7.4,
"woba": 0.291,
"xwoba": 0.298,
"barrel_percent": 5.3,
"hard_hit_percent": 32.9,
"whiff_percent": 21.7
},
"espn_rank": {
"rank": 69,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "624133",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 12.0,
"R": 12.0,
"H": 28.0,
"BB": 10.0,
"SO": 14.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 5.6,
"BB": 2.0,
"SO": 2.8,
"HR": 0.4,
"BF": 23.8,
"Pitches": 91.8
},
"rates": {
"ERA": 3.9036,
"WHIP": 1.3735,
"ER_per_IP": 0.43373,
"H_per_IP": 1.01205,
"BB_per_IP": 0.36145,
"SO_per_IP": 0.50602,
"HR_per_IP": 0.07229
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 24.0,
"R": 25.0,
"H": 50.0,
"BB": 15.0,
"SO": 38.0,
"HR": 4.0,
"BF": 206.0,
"Pitches": 806.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.5,
"H": 5.0,
"BB": 1.5,
"SO": 3.8,
"HR": 0.4,
"BF": 20.6,
"Pitches": 80.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3542,
"ER_per_IP": 0.5,
"H_per_IP": 1.04167,
"BB_per_IP": 0.3125,
"SO_per_IP": 0.79167,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 25,
"totals": {
"IP": 130.2,
"ER": 50.0,
"R": 53.0,
"H": 119.0,
"BB": 40.0,
"SO": 122.0,
"HR": 8.0,
"BF": 543.0,
"Pitches": 2104.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.12,
"H": 4.76,
"BB": 1.6,
"SO": 4.88,
"HR": 0.32,
"BF": 21.72,
"Pitches": 84.16
},
"rates": {
"ERA": 3.4439,
"WHIP": 1.2168,
"ER_per_IP": 0.38265,
"H_per_IP": 0.91071,
"BB_per_IP": 0.30612,
"SO_per_IP": 0.93367,
"HR_per_IP": 0.06122
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.401,
"predicted_H": 5.249,
"predicted_BB": 1.787,
"predicted_SO": 3.859,
"predicted_HR": 0.452,
"predicted_ERA": 4.1053,
"predicted_WHIP": 1.3367
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.401,
"final": 2.6528,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.249,
"final": 5.1443,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.787,
"final": 1.4561,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.859,
"final": 5.1796,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.452,
"final": 0.262,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1053,
"final": 4.1053,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3367,
"final": 1.3367,
"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": 24,
"H": 50,
"BB": 15,
"SO": 38,
"HR": 4,
"ERA": 4.500000000000001,
"WHIP": 1.354166666666667,
"K9": 7.125000000000001,
"HR9": 0.7500000000000001,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.0100407111828795,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "624133",
"player_name": "Ranger Suarez",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 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": "BOS",
"games": 148,
"wins": 80,
"losses": 68,
"win_pct": 0.5405,
"runs_scored": 654.0,
"runs_allowed": 573.0,
"run_differential": 81.0,
"run_differential_per_game": 0.5473,
"avg_runs_scored": 4.4189,
"avg_runs_allowed": 3.8716,
"offense_index": 0.9816,
"defense_index": 1.1627,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.0,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.1013
},
"opponent": {
"team": "KC",
"games": 148,
"wins": 66,
"losses": 82,
"win_pct": 0.4459,
"runs_scored": 632.0,
"runs_allowed": 719.0,
"run_differential": -87.0,
"run_differential_per_game": -0.5878,
"avg_runs_scored": 4.2703,
"avg_runs_allowed": 4.8581,
"offense_index": 0.9486,
"defense_index": 0.9266,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.6,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1528
},
"edges": {
"quality_edge": 0.2541,
"offense_edge": -0.0184,
"opponent_offense_edge": -0.0514,
"defense_strength": 0.1627,
"opponent_defense_weakness": 0.0734,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0171,
"run_prevention": 0.9628,
"strikeout": 1.0117
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "624133",
"profile": {
"available": true,
"pitcher_id": "624133",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 515.0,
"k_percent": 22.5,
"bb_percent": 7.4,
"woba": 0.291,
"xwoba": 0.298,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 32.9,
"avg_best_speed": 75.0843,
"avg_hyper_speed": 93.1356,
"whiff_percent": 21.7,
"swing_percent": 45.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.4029,
"command_and_miss": -0.0429,
"regression_edge": -0.2,
"xwoba_edge": 0.3714,
"barrel_edge": 0.4,
"hard_hit_edge": 0.7286,
"whiff_edge": -0.4714,
"bb_edge": 0.45,
"pitch_design_score": -0.2192
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "624133",
"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": 85.93430222056823,
"release_spin_rate": 1973.0652526093884,
"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": 85.93430222056823,
"release_spin_rate": 1973.0652526093884,
"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.9343,
"release_spin_rate": 1973.0653,
"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.2192,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5659,
"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.177,
"sample_weight": 1.0,
"run_prevention_factor": 0.985,
"strikeout_factor": 0.984,
"walk_factor": 0.964,
"homer_factor": 0.9277,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "624133",
"espn_id": 39817,
"player_name": "Ranger Suarez",
"team": "BOS",
"role": "pitcher",
"espn_rank": 69,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 69,
"gp_value": 25.0,
"gp_rank": 327,
"gs_value": 25.0,
"gs_rank": 64,
"qs_value": 8.0,
"qs_rank": 75,
"era_value": 3.4438,
"era_rank": null,
"w_value": 6.0,
"w_rank": 108,
"l_value": 4.0,
"l_rank": 189,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 130.2,
"ip_rank": 84,
"h_value": 119.0,
"h_rank": 80,
"er_value": 50.0,
"er_rank": 104,
"hr_value": 8.0,
"hr_rank": 206,
"bb_value": 40.0,
"bb_rank": 86,
"k_value": 122.0,
"k_rank": 65,
"k_per_9_value": 8.403061,
"k_per_9_rank": 20.0,
"whip_value": 1.2168,
"whip_rank": null,
"war_value": 2.04,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.985,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.985,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9277,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.984,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 92,
"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/20260912_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"
}
} |
| 20260912 | 20260912_LAA@WAS | away | Walbert Ureña | Walbert Ureña | True | 6.0 | 6.0 | 0 | 1 | 4 | 3 | 2/9 | 1/2 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.7411167512690353,
"WHIP": 1.2106598984771573,
"IP": 131.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.403,
"recent_avg_IP": 5.933,
"last_start_IP": 8.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3729,
"sample_weight": 1.0,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0131,
"walk_factor": 1.052,
"homer_factor": 0.9358,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 11.8,
"woba": 0.274,
"xwoba": 0.286,
"barrel_percent": 5.4,
"hard_hit_percent": 35.8,
"whiff_percent": 26.8
},
"espn_rank": {
"rank": 23,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 131.1,
"season_ERA": 2.741,
"season_WHIP": 1.211,
"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": 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": "700712",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 8.0,
"R": 8.0,
"H": 18.0,
"BB": 10.0,
"SO": 27.0,
"HR": 3.0,
"BF": 116.0,
"Pitches": 466.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 3.6,
"BB": 2.0,
"SO": 5.4,
"HR": 0.6,
"BF": 23.2,
"Pitches": 93.2
},
"rates": {
"ERA": 2.427,
"WHIP": 0.9438,
"ER_per_IP": 0.26966,
"H_per_IP": 0.60674,
"BB_per_IP": 0.33708,
"SO_per_IP": 0.91011,
"HR_per_IP": 0.10112
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 14.0,
"R": 14.0,
"H": 34.0,
"BB": 24.0,
"SO": 49.0,
"HR": 4.0,
"BF": 215.0,
"Pitches": 885.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 2.4,
"SO": 4.9,
"HR": 0.4,
"BF": 21.5,
"Pitches": 88.5
},
"rates": {
"ERA": 2.3333,
"WHIP": 1.0741,
"ER_per_IP": 0.25926,
"H_per_IP": 0.62963,
"BB_per_IP": 0.44444,
"SO_per_IP": 0.90741,
"HR_per_IP": 0.07407
}
},
"season": {
"games": 26,
"totals": {
"IP": 131.1,
"ER": 40.0,
"R": 47.0,
"H": 94.0,
"BB": 65.0,
"SO": 124.0,
"HR": 9.0,
"BF": 552.0,
"Pitches": 2208.0
},
"per_game": {
"IP": 5.0,
"ER": 1.5385,
"R": 1.8077,
"H": 3.6154,
"BB": 2.5,
"SO": 4.7692,
"HR": 0.3462,
"BF": 21.2308,
"Pitches": 84.9231
},
"rates": {
"ERA": 2.7411,
"WHIP": 1.2107,
"ER_per_IP": 0.30457,
"H_per_IP": 0.71574,
"BB_per_IP": 0.49492,
"SO_per_IP": 0.94416,
"HR_per_IP": 0.06853
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.748,
"predicted_H": 3.894,
"predicted_BB": 2.257,
"predicted_SO": 5.186,
"predicted_HR": 0.535,
"predicted_ERA": 2.7914,
"predicted_WHIP": 1.0912
}
},
"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": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.748,
"final": 1.4352,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.894,
"final": 3.102,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.257,
"final": 1.7314,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.186,
"final": 5.5264,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.535,
"final": 0.3113,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7914,
"final": 2.7914,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0912,
"final": 1.0912,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 14,
"H": 34,
"BB": 24,
"SO": 49,
"HR": 4,
"ERA": 2.3333333333333335,
"WHIP": 1.0740740740740742,
"K9": 8.166666666666666,
"HR9": 0.6666666666666666,
"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-06T00:00:00"
},
"recent_form_boost": 0.7592883963680646,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"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": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700712",
"player_name": "Walbert Ure\u00f1a",
"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": 1.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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 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": "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": "700712",
"profile": {
"available": true,
"pitcher_id": "700712",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 522.0,
"k_percent": 22.5,
"bb_percent": 11.8,
"woba": 0.274,
"xwoba": 0.286,
"sweet_spot_percent": 26.5,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 35.8,
"avg_best_speed": 75.4513,
"avg_hyper_speed": 93.6525,
"whiff_percent": 26.8,
"swing_percent": 46.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.6976,
"command_and_miss": -0.0079,
"regression_edge": -0.3429,
"xwoba_edge": 0.7143,
"barrel_edge": 0.3778,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.2571,
"bb_edge": -0.65,
"pitch_design_score": 0.2326
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700712",
"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": 94.00164107379047,
"release_spin_rate": 2098.3450495663596,
"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": 94.00164107379047,
"release_spin_rate": 2098.3450495663596,
"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.0016,
"release_spin_rate": 2098.345,
"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.2326,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.6611,
"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.3729,
"sample_weight": 1.0,
"run_prevention_factor": 0.9683,
"strikeout_factor": 1.0131,
"walk_factor": 1.052,
"homer_factor": 0.9358,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700712",
"espn_id": 5197476,
"player_name": "Walbert Urena",
"team": "LAA",
"role": "pitcher",
"espn_rank": 23,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 23,
"gp_value": 26.0,
"gp_rank": 310,
"gs_value": 24.0,
"gs_rank": 72,
"qs_value": 12.0,
"qs_rank": 37,
"era_value": 2.7411,
"era_rank": null,
"w_value": 9.0,
"w_rank": 44,
"l_value": 10.0,
"l_rank": 20,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 1.0,
"hld_rank": 272,
"ip_value": 131.1,
"ip_rank": 80,
"h_value": 94.0,
"h_rank": 123,
"er_value": 40.0,
"er_rank": 151,
"hr_value": 9.0,
"hr_rank": 177,
"bb_value": 65.0,
"bb_rank": 14,
"k_value": 124.0,
"k_rank": 62,
"k_per_9_value": 8.497462,
"k_per_9_rank": 20.0,
"whip_value": 1.2106,
"whip_rank": null,
"war_value": 3.43,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9683,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9683,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.052,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9358,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0131,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 88,
"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 7",
"detail": "Actual minus predicted hits was +7."
},
{
"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/20260912_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"
}
} |
| 20260912 | 20260912_LAA@WAS | home | Andrew Alvarez | Andrew Alvarez | True | 5.0 | 7.0 | 6 | 0 | 0 | 0 | 0/1 | 0/4 | 8/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6,
"WHIP": 1.3157894736842106,
"IP": 95.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.881,
"recent_avg_IP": 5.133,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0825,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 1.0057,
"walk_factor": 1.03,
"homer_factor": 1.0003,
"regression_flag": "neutral",
"k_percent": 22.7,
"bb_percent": 10.7,
"woba": 0.3,
"xwoba": 0.321,
"barrel_percent": 5.7,
"hard_hit_percent": 40.9,
"whiff_percent": 25.3
},
"espn_rank": {
"rank": 74,
"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": "674841",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 11.0,
"SO": 26.0,
"HR": 3.0,
"BF": 105.0,
"Pitches": 404.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 2.2,
"SO": 5.2,
"HR": 0.6,
"BF": 21.0,
"Pitches": 80.8
},
"rates": {
"ERA": 3.1558,
"WHIP": 1.0909,
"ER_per_IP": 0.35065,
"H_per_IP": 0.66234,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.01299,
"HR_per_IP": 0.11688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 19.0,
"R": 19.0,
"H": 37.0,
"BB": 22.0,
"SO": 40.0,
"HR": 3.0,
"BF": 200.0,
"Pitches": 752.0
},
"per_game": {
"IP": 4.2,
"ER": 1.9,
"R": 1.9,
"H": 3.7,
"BB": 2.2,
"SO": 4.0,
"HR": 0.3,
"BF": 20.0,
"Pitches": 75.2
},
"rates": {
"ERA": 3.5625,
"WHIP": 1.2292,
"ER_per_IP": 0.39583,
"H_per_IP": 0.77083,
"BB_per_IP": 0.45833,
"SO_per_IP": 0.83333,
"HR_per_IP": 0.0625
}
},
"season": {
"games": 22,
"totals": {
"IP": 95.0,
"ER": 38.0,
"R": 38.0,
"H": 82.0,
"BB": 43.0,
"SO": 91.0,
"HR": 5.0,
"BF": 401.0,
"Pitches": 1567.0
},
"per_game": {
"IP": 4.1,
"ER": 1.7273,
"R": 1.7273,
"H": 3.7273,
"BB": 1.9545,
"SO": 4.1364,
"HR": 0.2273,
"BF": 18.2273,
"Pitches": 71.2273
},
"rates": {
"ERA": 3.6,
"WHIP": 1.3158,
"ER_per_IP": 0.4,
"H_per_IP": 0.86316,
"BB_per_IP": 0.45263,
"SO_per_IP": 0.95789,
"HR_per_IP": 0.05263
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.918,
"predicted_H": 3.758,
"predicted_BB": 2.064,
"predicted_SO": 4.506,
"predicted_HR": 0.462,
"predicted_ERA": 3.5987,
"predicted_WHIP": 1.2137
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.918,
"final": 1.0966,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 3.758,
"final": 2.1486,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.064,
"final": 1.1801,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.506,
"final": 6.0023,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.462,
"final": 0.2641,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5987,
"final": 3.5987,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2137,
"final": 1.2137,
"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": 19,
"H": 37,
"BB": 22,
"SO": 40,
"HR": 3,
"ERA": 3.5625,
"WHIP": 1.2291666666666667,
"K9": 7.5,
"HR9": 0.5625,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9014469611828795,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "674841",
"player_name": "Andrew Alvarez",
"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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"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": "674841",
"profile": {
"available": true,
"pitcher_id": "674841",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 366.0,
"k_percent": 22.7,
"bb_percent": 10.7,
"woba": 0.3,
"xwoba": 0.321,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 40.9,
"avg_best_speed": 77.4657,
"avg_hyper_speed": 94.5131,
"whiff_percent": 25.3,
"swing_percent": 44.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.0119,
"command_and_miss": -0.015,
"regression_edge": -0.6,
"xwoba_edge": -0.2857,
"barrel_edge": 0.3111,
"hard_hit_edge": -0.4143,
"whiff_edge": 0.0429,
"bb_edge": -0.375,
"pitch_design_score": -0.1491
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674841",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.18588942540443,
"release_spin_rate": 2497.3335449859924,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 87.18588942540443,
"release_spin_rate": 2497.3335449859924,
"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.1859,
"release_spin_rate": 2497.3335,
"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.1491,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0652,
"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.0825,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 1.0057,
"walk_factor": 1.03,
"homer_factor": 1.0003,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674841",
"espn_id": 4300668,
"player_name": "Andrew Alvarez",
"team": "WSH",
"role": "pitcher",
"espn_rank": 74,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 74,
"gp_value": 22.0,
"gp_rank": 371,
"gs_value": 14.0,
"gs_rank": 146,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 3.6,
"era_rank": null,
"w_value": 2.0,
"w_rank": 316,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 1.0,
"sv_rank": 140,
"hld_value": 2.0,
"hld_rank": 231,
"ip_value": 95.0,
"ip_rank": 135,
"h_value": 82.0,
"h_rank": 146,
"er_value": 38.0,
"er_rank": 159,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 43.0,
"bb_rank": 69,
"k_value": 91.0,
"k_rank": 126,
"k_per_9_value": 8.621053,
"k_per_9_rank": 25.0,
"whip_value": 1.3157,
"whip_rank": null,
"war_value": 1.97,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.007,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.007,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.03,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0003,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0057,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 15,
"Pitches": 75,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +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/20260912_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"
}
} |
| 20260912 | 20260912_LAD@MIA | away | Tyler Glasnow | Tyler Glasnow | True | 6.0 | 4.0 | -6 | 0 | 4 | 4 | 2/5 | 1/4 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.121387283236994,
"WHIP": 0.8843930635838151,
"IP": 57.2,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.767,
"recent_avg_IP": 4.933,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5368,
"sample_weight": 0.764,
"run_prevention_factor": 0.9544,
"strikeout_factor": 1.0646,
"walk_factor": 0.9786,
"homer_factor": 0.9844,
"regression_flag": "neutral",
"k_percent": 32.0,
"bb_percent": 7.8,
"woba": 0.234,
"xwoba": 0.253,
"barrel_percent": 8.3,
"hard_hit_percent": 39.4,
"whiff_percent": 29.8
},
"espn_rank": {
"rank": 115,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 57.2,
"season_ERA": 3.121,
"season_WHIP": 0.884,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 11.0,
"R": 11.0,
"H": 18.0,
"BB": 10.0,
"SO": 32.0,
"HR": 3.0,
"BF": 99.0,
"Pitches": 381.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.2,
"H": 3.6,
"BB": 2.0,
"SO": 6.4,
"HR": 0.6,
"BF": 19.8,
"Pitches": 76.2
},
"rates": {
"ERA": 4.0135,
"WHIP": 1.1351,
"ER_per_IP": 0.44595,
"H_per_IP": 0.72973,
"BB_per_IP": 0.40541,
"SO_per_IP": 1.2973,
"HR_per_IP": 0.12162
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 20.0,
"R": 20.0,
"H": 34.0,
"BB": 17.0,
"SO": 70.0,
"HR": 5.0,
"BF": 219.0,
"Pitches": 869.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 3.4,
"BB": 1.7,
"SO": 7.0,
"HR": 0.5,
"BF": 21.9,
"Pitches": 86.9
},
"rates": {
"ERA": 3.1214,
"WHIP": 0.8844,
"ER_per_IP": 0.34682,
"H_per_IP": 0.5896,
"BB_per_IP": 0.2948,
"SO_per_IP": 1.21387,
"HR_per_IP": 0.08671
}
},
"season": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 20.0,
"R": 20.0,
"H": 34.0,
"BB": 17.0,
"SO": 70.0,
"HR": 5.0,
"BF": 219.0,
"Pitches": 869.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 3.4,
"BB": 1.7,
"SO": 7.0,
"HR": 0.5,
"BF": 21.9,
"Pitches": 86.9
},
"rates": {
"ERA": 3.1214,
"WHIP": 0.8844,
"ER_per_IP": 0.34682,
"H_per_IP": 0.5896,
"BB_per_IP": 0.2948,
"SO_per_IP": 1.21387,
"HR_per_IP": 0.08671
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.411,
"predicted_H": 4.255,
"predicted_BB": 1.999,
"predicted_SO": 6.38,
"predicted_HR": 0.661,
"predicted_ERA": 3.9254,
"predicted_WHIP": 1.1313
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.411,
"final": 1.2276,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.255,
"final": 3.1482,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.999,
"final": 1.5087,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.38,
"final": 5.7027,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.661,
"final": 0.3366,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9254,
"final": 3.9254,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1313,
"final": 1.1313,
"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": 20,
"H": 34,
"BB": 17,
"SO": 70,
"HR": 5,
"ERA": 3.1213872832369938,
"WHIP": 0.884393063583815,
"K9": 10.92485549132948,
"HR9": 0.7803468208092484,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-05T00:00:00"
},
"recent_form_boost": 0.84320244046997,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 191.0,
"k_percent": 32.0,
"bb_percent": 7.8,
"woba": 0.234,
"xwoba": 0.253,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 8.3,
"hard_hit_percent": 39.4,
"avg_best_speed": 81.5009,
"avg_hyper_speed": 93.9679,
"whiff_percent": 29.8,
"swing_percent": 42.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": 0.9016,
"command_and_miss": 0.9529,
"regression_edge": -0.5429,
"xwoba_edge": 1.6571,
"barrel_edge": -0.2667,
"hard_hit_edge": -0.2,
"whiff_edge": 0.6857,
"bb_edge": 0.35,
"pitch_design_score": 0.053
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.79575244320905,
"release_spin_rate": 2624.519085129293,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.79575244320905,
"release_spin_rate": 2624.519085129293,
"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.7958,
"release_spin_rate": 2624.5191,
"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.053,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3787,
"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.5368,
"sample_weight": 0.764,
"run_prevention_factor": 0.9544,
"strikeout_factor": 1.0646,
"walk_factor": 0.9786,
"homer_factor": 0.9844,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607192",
"espn_id": 33190,
"player_name": "Tyler Glasnow",
"team": "LAD",
"role": "pitcher",
"espn_rank": 115,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 115,
"gp_value": 10.0,
"gp_rank": 531,
"gs_value": 10.0,
"gs_rank": 172,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 3.1213,
"era_rank": null,
"w_value": 4.0,
"w_rank": 190,
"l_value": 0.0,
"l_rank": 574,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 57.2,
"ip_rank": 253,
"h_value": 34.0,
"h_rank": 380,
"er_value": 20.0,
"er_rank": 323,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 17.0,
"bb_rank": 347,
"k_value": 70.0,
"k_rank": 183,
"k_per_9_value": 10.924855,
"k_per_9_rank": 19.0,
"whip_value": 0.8843,
"whip_rank": null,
"war_value": 1.57,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9652,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9652,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9837,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9881,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0494,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "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/20260912_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"
}
} |
| 20260912 | 20260912_LAD@MIA | home | Tyler Phillips | Tyler Phillips | True | 5.0 | 3.2 | -4 | 3 | 2 | -1 | 4/2 | 5/3 | 2/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5115606936416186,
"WHIP": 1.3265895953757225,
"IP": 115.1,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 4.627,
"recent_avg_IP": 4.8,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2701,
"sample_weight": 1.0,
"run_prevention_factor": 1.023,
"strikeout_factor": 0.988,
"walk_factor": 1.012,
"homer_factor": 1.0553,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 9.8,
"woba": 0.315,
"xwoba": 0.329,
"barrel_percent": 7.8,
"hard_hit_percent": 42.8,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 86,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 115.1,
"season_ERA": 3.512,
"season_WHIP": 1.327,
"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": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.0,
"ER": 9.0,
"R": 9.0,
"H": 17.0,
"BB": 9.0,
"SO": 23.0,
"HR": 3.0,
"BF": 90.0,
"Pitches": 363.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.8,
"H": 3.4,
"BB": 1.8,
"SO": 4.6,
"HR": 0.6,
"BF": 18.0,
"Pitches": 72.6
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.1818,
"ER_per_IP": 0.40909,
"H_per_IP": 0.77273,
"BB_per_IP": 0.40909,
"SO_per_IP": 1.04545,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.1,
"ER": 18.0,
"R": 19.0,
"H": 38.0,
"BB": 14.0,
"SO": 38.0,
"HR": 7.0,
"BF": 173.0,
"Pitches": 659.0
},
"per_game": {
"IP": 4.0,
"ER": 1.8,
"R": 1.9,
"H": 3.8,
"BB": 1.4,
"SO": 3.8,
"HR": 0.7,
"BF": 17.3,
"Pitches": 65.9
},
"rates": {
"ERA": 3.9194,
"WHIP": 1.2581,
"ER_per_IP": 0.43548,
"H_per_IP": 0.91935,
"BB_per_IP": 0.33871,
"SO_per_IP": 0.91935,
"HR_per_IP": 0.16935
}
},
"season": {
"games": 34,
"totals": {
"IP": 115.1,
"ER": 45.0,
"R": 48.0,
"H": 105.0,
"BB": 48.0,
"SO": 93.0,
"HR": 15.0,
"BF": 491.0,
"Pitches": 1846.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3235,
"R": 1.4118,
"H": 3.0882,
"BB": 1.4118,
"SO": 2.7353,
"HR": 0.4412,
"BF": 14.4412,
"Pitches": 54.2941
},
"rates": {
"ERA": 3.5116,
"WHIP": 1.3266,
"ER_per_IP": 0.39017,
"H_per_IP": 0.9104,
"BB_per_IP": 0.41618,
"SO_per_IP": 0.80636,
"HR_per_IP": 0.13006
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.764,
"predicted_H": 3.592,
"predicted_BB": 1.59,
"predicted_SO": 3.943,
"predicted_HR": 0.607,
"predicted_ERA": 3.8334,
"predicted_WHIP": 1.251
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4042,
"form_weight": 0.5958,
"form_reliability": 0.8718,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.764,
"final": 2.6677,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.592,
"final": 3.7569,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.59,
"final": 2.9682,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.943,
"final": 3.1577,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.607,
"final": 0.3617,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8334,
"final": 3.8334,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.251,
"final": 1.251,
"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": 41.1,
"ER": 18,
"H": 38,
"BB": 14,
"SO": 38,
"HR": 7,
"ERA": 3.919354838709677,
"WHIP": 1.2580645161290323,
"K9": 8.274193548387096,
"HR9": 1.5241935483870968,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9423155767742772,
"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": 5.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663969",
"player_name": "Tyler Phillips",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "663969",
"profile": {
"available": true,
"pitcher_id": "663969",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 458.0,
"k_percent": 18.9,
"bb_percent": 9.8,
"woba": 0.315,
"xwoba": 0.329,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 42.8,
"avg_best_speed": 79.238,
"avg_hyper_speed": 94.3571,
"whiff_percent": 26.0,
"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": -0.3189,
"command_and_miss": -0.1793,
"regression_edge": -0.4,
"xwoba_edge": -0.5143,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.6857,
"whiff_edge": 0.1429,
"bb_edge": -0.15,
"pitch_design_score": -0.0607
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"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": 88.76458424679134,
"release_spin_rate": 2057.565279936834,
"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": 88.76458424679134,
"release_spin_rate": 2057.565279936834,
"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.7646,
"release_spin_rate": 2057.5653,
"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.0607,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4338,
"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.2701,
"sample_weight": 1.0,
"run_prevention_factor": 1.023,
"strikeout_factor": 0.988,
"walk_factor": 1.012,
"homer_factor": 1.0553,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663969",
"espn_id": 41247,
"player_name": "Tyler Phillips",
"team": "MIA",
"role": "pitcher",
"espn_rank": 86,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 86,
"gp_value": 34.0,
"gp_rank": 199,
"gs_value": 17.0,
"gs_rank": 124,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 3.5115,
"era_rank": null,
"w_value": 5.0,
"w_rank": 149,
"l_value": 6.0,
"l_rank": 113,
"sv_value": 2.0,
"sv_rank": 93,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 115.1,
"ip_rank": 102,
"h_value": 105.0,
"h_rank": 113,
"er_value": 45.0,
"er_rank": 130,
"hr_value": 15.0,
"hr_rank": 92,
"bb_value": 48.0,
"bb_rank": 50,
"k_value": 93.0,
"k_rank": 122,
"k_per_9_value": 7.2572255,
"k_per_9_rank": 32.0,
"whip_value": 1.3265,
"whip_rank": null,
"war_value": 1.79,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.023,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.023,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.012,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0553,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.988,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_NYM@NYY | away | Zac Thornton | Zac Thornton | True | 5.1 | 7.0 | 5 | 0 | 2 | 2 | 2/5 | 6/1 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5276381909547743,
"WHIP": 1.190954773869347,
"IP": 66.1,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 5.528,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3008,
"sample_weight": 0.9,
"run_prevention_factor": 1.0256,
"strikeout_factor": 0.9542,
"walk_factor": 0.9352,
"homer_factor": 1.0546,
"regression_flag": "neutral",
"k_percent": 19.1,
"bb_percent": 5.6,
"woba": 0.318,
"xwoba": 0.331,
"barrel_percent": 9.0,
"hard_hit_percent": 39.7,
"whiff_percent": 19.0
},
"espn_rank": {
"rank": 138,
"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": "804267",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 15.0,
"R": 15.0,
"H": 34.0,
"BB": 3.0,
"SO": 24.0,
"HR": 8.0,
"BF": 114.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0,
"H": 6.8,
"BB": 0.6,
"SO": 4.8,
"HR": 1.6,
"BF": 22.8,
"Pitches": 89.4
},
"rates": {
"ERA": 5.0,
"WHIP": 1.3704,
"ER_per_IP": 0.55556,
"H_per_IP": 1.25926,
"BB_per_IP": 0.11111,
"SO_per_IP": 0.88889,
"HR_per_IP": 0.2963
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 21.0,
"R": 22.0,
"H": 55.0,
"BB": 12.0,
"SO": 41.0,
"HR": 10.0,
"BF": 225.0,
"Pitches": 848.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.2,
"H": 5.5,
"BB": 1.2,
"SO": 4.1,
"HR": 1.0,
"BF": 22.5,
"Pitches": 84.8
},
"rates": {
"ERA": 3.375,
"WHIP": 1.1964,
"ER_per_IP": 0.375,
"H_per_IP": 0.98214,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.73214,
"HR_per_IP": 0.17857
}
},
"season": {
"games": 12,
"totals": {
"IP": 66.1,
"ER": 26.0,
"R": 27.0,
"H": 64.0,
"BB": 15.0,
"SO": 51.0,
"HR": 11.0,
"BF": 267.0,
"Pitches": 1006.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1667,
"R": 2.25,
"H": 5.3333,
"BB": 1.25,
"SO": 4.25,
"HR": 0.9167,
"BF": 22.25,
"Pitches": 83.8333
},
"rates": {
"ERA": 3.5276,
"WHIP": 1.191,
"ER_per_IP": 0.39196,
"H_per_IP": 0.96482,
"BB_per_IP": 0.22613,
"SO_per_IP": 0.76884,
"HR_per_IP": 0.16583
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.581,
"predicted_H": 5.817,
"predicted_BB": 1.252,
"predicted_SO": 4.635,
"predicted_HR": 1.118,
"predicted_ERA": 4.2524,
"predicted_WHIP": 1.2941
}
},
"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": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.581,
"final": 1.3569,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.817,
"final": 4.0068,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 6.0,
"form": 1.252,
"final": 3.5038,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.635,
"final": 4.8081,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.118,
"final": 0.5878,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2524,
"final": 4.2524,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2941,
"final": 1.2941,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 21,
"H": 55,
"BB": 12,
"SO": 41,
"HR": 10,
"ERA": 3.375,
"WHIP": 1.1964285714285714,
"K9": 6.589285714285714,
"HR9": 1.6071428571428572,
"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-05T00:00:00"
},
"recent_form_boost": 0.879534758801927,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 6.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804267",
"player_name": "Zac Thornton",
"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": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 0.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "804267",
"profile": {
"available": true,
"pitcher_id": "804267",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 225.0,
"k_percent": 19.1,
"bb_percent": 5.6,
"woba": 0.318,
"xwoba": 0.331,
"sweet_spot_percent": 37.2,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 39.7,
"avg_best_speed": 77.7377,
"avg_hyper_speed": 94.2508,
"whiff_percent": 19.0,
"swing_percent": 51.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": -0.3685,
"command_and_miss": -0.3064,
"regression_edge": -0.3714,
"xwoba_edge": -0.5714,
"barrel_edge": -0.4222,
"hard_hit_edge": -0.2429,
"whiff_edge": -0.8571,
"bb_edge": 0.9,
"pitch_design_score": -0.1391
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"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": 87.36518455660557,
"release_spin_rate": 2357.0632917137727,
"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": 87.36518455660557,
"release_spin_rate": 2357.0632917137727,
"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.3652,
"release_spin_rate": 2357.0633,
"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.1391,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9935,
"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.3008,
"sample_weight": 0.9,
"run_prevention_factor": 1.0256,
"strikeout_factor": 0.9542,
"walk_factor": 0.9352,
"homer_factor": 1.0546,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "804267",
"espn_id": 5129576,
"player_name": "Zac Thornton",
"team": "NYM",
"role": "pitcher",
"espn_rank": 138,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 138,
"gp_value": 12.0,
"gp_rank": 497,
"gs_value": 12.0,
"gs_rank": 158,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 3.5276,
"era_rank": null,
"w_value": 3.0,
"w_rank": 246,
"l_value": 5.0,
"l_rank": 137,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 66.1,
"ip_rank": 201,
"h_value": 64.0,
"h_rank": 185,
"er_value": 26.0,
"er_rank": 233,
"hr_value": 11.0,
"hr_rank": 148,
"bb_value": 15.0,
"bb_rank": 384,
"k_value": 51.0,
"k_rank": 289,
"k_per_9_value": 6.919598,
"k_per_9_rank": 38.0,
"whip_value": 1.1909,
"whip_rank": null,
"war_value": 1.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.023,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.023,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9417,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0491,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9588,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 6,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 109,
"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 -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/20260912_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"
}
} |
| 20260912 | 20260912_NYM@NYY | home | Gerrit Cole | Gerrit Cole | True | 6.0 | 4.1 | -5 | 3 | 5 | 2 | 6/9 | 1/0 | 3/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4054054054054053,
"WHIP": 1.09009009009009,
"IP": 111.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.842,
"recent_avg_IP": 6.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0857,
"sample_weight": 1.0,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0011,
"walk_factor": 0.914,
"homer_factor": 1.0499,
"regression_flag": "neutral",
"k_percent": 24.9,
"bb_percent": 4.9,
"woba": 0.296,
"xwoba": 0.296,
"barrel_percent": 8.7,
"hard_hit_percent": 44.0,
"whiff_percent": 22.3
},
"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": 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": "543037",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 12.0,
"R": 13.0,
"H": 29.0,
"BB": 5.0,
"SO": 26.0,
"HR": 6.0,
"BF": 124.0,
"Pitches": 433.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.6,
"H": 5.8,
"BB": 1.0,
"SO": 5.2,
"HR": 1.2,
"BF": 24.8,
"Pitches": 86.6
},
"rates": {
"ERA": 3.5604,
"WHIP": 1.1209,
"ER_per_IP": 0.3956,
"H_per_IP": 0.95604,
"BB_per_IP": 0.16484,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.1978
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 20.0,
"R": 21.0,
"H": 51.0,
"BB": 11.0,
"SO": 66.0,
"HR": 9.0,
"BF": 246.0,
"Pitches": 909.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0,
"R": 2.1,
"H": 5.1,
"BB": 1.1,
"SO": 6.6,
"HR": 0.9,
"BF": 24.6,
"Pitches": 90.9
},
"rates": {
"ERA": 2.9032,
"WHIP": 1.0,
"ER_per_IP": 0.32258,
"H_per_IP": 0.82258,
"BB_per_IP": 0.17742,
"SO_per_IP": 1.06452,
"HR_per_IP": 0.14516
}
},
"season": {
"games": 19,
"totals": {
"IP": 111.0,
"ER": 42.0,
"R": 43.0,
"H": 99.0,
"BB": 22.0,
"SO": 113.0,
"HR": 17.0,
"BF": 453.0,
"Pitches": 1679.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2105,
"R": 2.2632,
"H": 5.2105,
"BB": 1.1579,
"SO": 5.9474,
"HR": 0.8947,
"BF": 23.8421,
"Pitches": 88.3684
},
"rates": {
"ERA": 3.4054,
"WHIP": 1.0901,
"ER_per_IP": 0.37838,
"H_per_IP": 0.89189,
"BB_per_IP": 0.1982,
"SO_per_IP": 1.01802,
"HR_per_IP": 0.15315
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.407,
"predicted_H": 5.558,
"predicted_BB": 1.319,
"predicted_SO": 5.834,
"predicted_HR": 1.007,
"predicted_ERA": 3.5557,
"predicted_WHIP": 1.1288
}
},
"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": 5.0,
"form": 2.407,
"final": 3.5428,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.558,
"final": 5.7516,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.319,
"final": 1.1793,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 5.834,
"final": 3.7167,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.007,
"final": 1.4419,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5557,
"final": 3.5557,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1288,
"final": 1.1288,
"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": 62.0,
"ER": 20,
"H": 51,
"BB": 11,
"SO": 66,
"HR": 9,
"ERA": 2.903225806451613,
"WHIP": 1.0,
"K9": 9.580645161290322,
"HR9": 1.3064516129032258,
"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-06T00:00:00"
},
"recent_form_boost": 0.8215494477420193,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 1.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
}
},
{
"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": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 6.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"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": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 421.0,
"k_percent": 24.9,
"bb_percent": 4.9,
"woba": 0.296,
"xwoba": 0.296,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 44.0,
"avg_best_speed": 81.2748,
"avg_hyper_speed": 94.4029,
"whiff_percent": 22.3,
"swing_percent": 49.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.0119,
"command_and_miss": 0.2664,
"regression_edge": 0.0,
"xwoba_edge": 0.4286,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.8571,
"whiff_edge": -0.3857,
"bb_edge": 1.075,
"pitch_design_score": 0.1221
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"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": 92.02958428402303,
"release_spin_rate": 2370.079024357199,
"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": 92.02958428402303,
"release_spin_rate": 2370.079024357199,
"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.0296,
"release_spin_rate": 2370.079,
"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.1221,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8722,
"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.0857,
"sample_weight": 1.0,
"run_prevention_factor": 0.9927,
"strikeout_factor": 1.0011,
"walk_factor": 0.914,
"homer_factor": 1.0499,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543037",
"espn_id": 32081,
"player_name": "Gerrit Cole",
"team": "NYY",
"role": "pitcher",
"espn_rank": 52,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 52,
"gp_value": 19.0,
"gp_rank": 405,
"gs_value": 19.0,
"gs_rank": 105,
"qs_value": 11.0,
"qs_rank": 46,
"era_value": 3.4054,
"era_rank": null,
"w_value": 8.0,
"w_rank": 65,
"l_value": 8.0,
"l_rank": 62,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 111.0,
"ip_rank": 106,
"h_value": 99.0,
"h_rank": 118,
"er_value": 42.0,
"er_rank": 146,
"hr_value": 17.0,
"hr_rank": 71,
"bb_value": 22.0,
"bb_rank": 268,
"k_value": 113.0,
"k_rank": 83,
"k_per_9_value": 9.162163,
"k_per_9_rank": 21.0,
"whip_value": 1.09,
"whip_rank": null,
"war_value": 2.56,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9927,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9927,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.914,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0499,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0011,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 110,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_PHI@ATL | away | Tim Mayza | Tim Mayza | True | 5.0 | 3.0 | -6 | 1 | 0 | -1 | 2/2 | 1/0 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2282608695652173,
"WHIP": 1.059782608695652,
"IP": 61.1,
"games_started": null,
"games_pitched": 54,
"role_avg_IP": 1.583,
"recent_avg_IP": 1.583,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2771,
"sample_weight": 0.92,
"run_prevention_factor": 0.9764,
"strikeout_factor": 1.0042,
"walk_factor": 0.943,
"homer_factor": 1.0018,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 6.1,
"woba": 0.275,
"xwoba": 0.283,
"barrel_percent": 6.5,
"hard_hit_percent": 44.4,
"whiff_percent": 23.6
},
"espn_rank": {
"rank": 125,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 61.1,
"season_ERA": 3.228,
"season_WHIP": 1.06,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.375,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7122,
"prior_weight": 0.2878
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641835",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 54,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 83.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.8,
"BB": 0.2,
"SO": 0.6,
"HR": 0.0,
"BF": 4.0,
"Pitches": 16.6
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 0.8,
"BB_per_IP": 0.2,
"SO_per_IP": 0.6,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.2,
"ER": 1.0,
"R": 1.0,
"H": 5.0,
"BB": 3.0,
"SO": 8.0,
"HR": 1.0,
"BF": 39.0,
"Pitches": 163.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.1,
"H": 0.5,
"BB": 0.3,
"SO": 0.8,
"HR": 0.1,
"BF": 3.9,
"Pitches": 16.3
},
"rates": {
"ERA": 0.8438,
"WHIP": 0.75,
"ER_per_IP": 0.09375,
"H_per_IP": 0.46875,
"BB_per_IP": 0.28125,
"SO_per_IP": 0.75,
"HR_per_IP": 0.09375
}
},
"season": {
"games": 54,
"totals": {
"IP": 61.1,
"ER": 22.0,
"R": 24.0,
"H": 50.0,
"BB": 15.0,
"SO": 59.0,
"HR": 6.0,
"BF": 244.0,
"Pitches": 979.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4074,
"R": 0.4444,
"H": 0.9259,
"BB": 0.2778,
"SO": 1.0926,
"HR": 0.1111,
"BF": 4.5185,
"Pitches": 18.1296
},
"rates": {
"ERA": 3.2283,
"WHIP": 1.0598,
"ER_per_IP": 0.3587,
"H_per_IP": 0.81522,
"BB_per_IP": 0.24457,
"SO_per_IP": 0.96196,
"HR_per_IP": 0.09783
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.514,
"predicted_H": 1.802,
"predicted_BB": 0.646,
"predicted_SO": 1.844,
"predicted_HR": 0.186,
"predicted_ERA": 1.9739,
"predicted_WHIP": 1.045
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4716,
"form_weight": 0.5284,
"form_reliability": 0.7122,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.375,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7122,
"prior_weight": 0.2878
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.514,
"final": 0.7432,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.802,
"final": 1.8954,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.646,
"final": 0.8129,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 1.844,
"final": 3.804,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.186,
"final": 0.0983,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9739,
"final": 1.9739,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.045,
"final": 1.045,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.2,
"ER": 1,
"H": 5,
"BB": 3,
"SO": 8,
"HR": 1,
"ERA": 0.84375,
"WHIP": 0.75,
"K9": 6.75,
"HR9": 0.84375,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8542514588614638,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.375,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7122,
"prior_weight": 0.2878
}
},
{
"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": 1,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641835",
"player_name": "Tim Mayza",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "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": "641835",
"profile": {
"available": true,
"pitcher_id": "641835",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 230.0,
"k_percent": 24.2,
"bb_percent": 6.1,
"woba": 0.275,
"xwoba": 0.283,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 44.4,
"avg_best_speed": 77.3614,
"avg_hyper_speed": 94.7323,
"whiff_percent": 23.6,
"swing_percent": 45.4
},
"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.4552,
"command_and_miss": 0.2264,
"regression_edge": -0.2286,
"xwoba_edge": 0.8,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.9143,
"whiff_edge": -0.2,
"bb_edge": 0.775,
"pitch_design_score": 0.1285
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641835",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 16,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 16,
"pitch_usage": 0.0,
"release_speed": 92.14444667891499,
"release_spin_rate": 2090.906895038556,
"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": 16,
"pitch_usage": 0.0,
"release_speed": 92.14444667891499,
"release_spin_rate": 2090.906895038556,
"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.1444,
"release_spin_rate": 2090.9069,
"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.1285,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9182,
"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.2771,
"sample_weight": 0.92,
"run_prevention_factor": 0.9764,
"strikeout_factor": 1.0042,
"walk_factor": 0.943,
"homer_factor": 1.0018,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641835",
"espn_id": 35773,
"player_name": "Tim Mayza",
"team": "PHI",
"role": "pitcher",
"espn_rank": 125,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 125,
"gp_value": 54.0,
"gp_rank": 81,
"gs_value": 4.0,
"gs_rank": 235,
"qs_value": 0.0,
"qs_rank": 210,
"era_value": 3.2282,
"era_rank": null,
"w_value": 3.0,
"w_rank": 246,
"l_value": 3.0,
"l_rank": 243,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 1.0,
"hld_rank": 272,
"ip_value": 61.1,
"ip_rank": 231,
"h_value": 50.0,
"h_rank": 248,
"er_value": 22.0,
"er_rank": 292,
"hr_value": 6.0,
"hr_rank": 271,
"bb_value": 15.0,
"bb_rank": 384,
"k_value": 59.0,
"k_rank": 234,
"k_per_9_value": 8.657608,
"k_per_9_rank": 27.0,
"whip_value": 1.0597,
"whip_rank": null,
"war_value": 1.48,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9783,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9783,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9476,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0017,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0039,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 73,
"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 -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_PHI@ATL | home | Tyler Mahle | Tyler Mahle | True | 5.2 | 7.0 | 4 | 3 | 1 | -2 | 9/6 | 2/0 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.0534351145038165,
"WHIP": 1.2671755725190839,
"IP": 131.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.458,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.028,
"sample_weight": 1.0,
"run_prevention_factor": 1.0024,
"strikeout_factor": 0.9949,
"walk_factor": 0.974,
"homer_factor": 0.9977,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 7.9,
"woba": 0.314,
"xwoba": 0.312,
"barrel_percent": 6.7,
"hard_hit_percent": 38.7,
"whiff_percent": 23.3
},
"espn_rank": {
"rank": 130,
"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": "641816",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 5.0,
"R": 7.0,
"H": 25.0,
"BB": 4.0,
"SO": 26.0,
"HR": 3.0,
"BF": 118.0,
"Pitches": 446.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.4,
"H": 5.0,
"BB": 0.8,
"SO": 5.2,
"HR": 0.6,
"BF": 23.6,
"Pitches": 89.2
},
"rates": {
"ERA": 1.4835,
"WHIP": 0.956,
"ER_per_IP": 0.16484,
"H_per_IP": 0.82418,
"BB_per_IP": 0.13187,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 14.0,
"R": 16.0,
"H": 46.0,
"BB": 14.0,
"SO": 55.0,
"HR": 5.0,
"BF": 237.0,
"Pitches": 920.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.6,
"H": 4.6,
"BB": 1.4,
"SO": 5.5,
"HR": 0.5,
"BF": 23.7,
"Pitches": 92.0
},
"rates": {
"ERA": 2.1,
"WHIP": 1.0,
"ER_per_IP": 0.23333,
"H_per_IP": 0.76667,
"BB_per_IP": 0.23333,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 24,
"totals": {
"IP": 131.0,
"ER": 59.0,
"R": 62.0,
"H": 123.0,
"BB": 43.0,
"SO": 124.0,
"HR": 17.0,
"BF": 545.0,
"Pitches": 2116.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4583,
"R": 2.5833,
"H": 5.125,
"BB": 1.7917,
"SO": 5.1667,
"HR": 0.7083,
"BF": 22.7083,
"Pitches": 88.1667
},
"rates": {
"ERA": 4.0534,
"WHIP": 1.2672,
"ER_per_IP": 0.45038,
"H_per_IP": 0.93893,
"BB_per_IP": 0.32824,
"SO_per_IP": 0.94656,
"HR_per_IP": 0.12977
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.693,
"predicted_H": 4.97,
"predicted_BB": 1.37,
"predicted_SO": 5.27,
"predicted_HR": 0.628,
"predicted_ERA": 2.6126,
"predicted_WHIP": 1.087
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.693,
"final": 2.2457,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.97,
"final": 6.674,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.37,
"final": 1.6364,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.27,
"final": 3.8873,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.628,
"final": 0.3625,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6126,
"final": 2.6126,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.087,
"final": 1.087,
"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": 14,
"H": 46,
"BB": 14,
"SO": 55,
"HR": 5,
"ERA": 2.1,
"WHIP": 1.0,
"K9": 8.25,
"HR9": 0.75,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.7311865445162128,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_BB": 2.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 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": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 22.8,
"bb_percent": 7.9,
"woba": 0.314,
"xwoba": 0.312,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 38.7,
"avg_best_speed": 80.4999,
"avg_hyper_speed": 93.9979,
"whiff_percent": 23.3,
"swing_percent": 46.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.0729,
"command_and_miss": 0.0314,
"regression_edge": 0.0571,
"xwoba_edge": -0.0286,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.1,
"whiff_edge": -0.2429,
"bb_edge": 0.325,
"pitch_design_score": -0.0133
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.61229354252224,
"release_spin_rate": 2139.505463281205,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 89.61229354252224,
"release_spin_rate": 2139.505463281205,
"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.6123,
"release_spin_rate": 2139.5055,
"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.0133,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0947,
"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.028,
"sample_weight": 1.0,
"run_prevention_factor": 1.0024,
"strikeout_factor": 0.9949,
"walk_factor": 0.974,
"homer_factor": 0.9977,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641816",
"espn_id": 34973,
"player_name": "Tyler Mahle",
"team": "ATL",
"role": "pitcher",
"espn_rank": 130,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 130,
"gp_value": 24.0,
"gp_rank": 342,
"gs_value": 24.0,
"gs_rank": 72,
"qs_value": 8.0,
"qs_rank": 75,
"era_value": 4.0534,
"era_rank": null,
"w_value": 5.0,
"w_rank": 149,
"l_value": 10.0,
"l_rank": 20,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 131.0,
"ip_rank": 83,
"h_value": 123.0,
"h_rank": 73,
"er_value": 59.0,
"er_rank": 70,
"hr_value": 17.0,
"hr_rank": 71,
"bb_value": 43.0,
"bb_rank": 69,
"k_value": 124.0,
"k_rank": 62,
"k_per_9_value": 8.519084,
"k_per_9_rank": 20.0,
"whip_value": 1.2671,
"whip_rank": null,
"war_value": 1.43,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0024,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0024,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.974,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9977,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9949,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 9,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 118,
"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/20260912_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"
}
} |
| 20260912 | 20260912_PIT@CHC | away | Paul Skenes | Paul Skenes | True | 5.1 | 7.0 | 5 | 3 | 2 | -1 | 5/4 | 1/1 | 1/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.832258064516129,
"WHIP": 1.1483870967741936,
"IP": 155.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.345,
"recent_avg_IP": 5.067,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4817,
"sample_weight": 1.0,
"run_prevention_factor": 0.9591,
"strikeout_factor": 1.052,
"walk_factor": 0.956,
"homer_factor": 0.971,
"regression_flag": "neutral",
"k_percent": 28.3,
"bb_percent": 7.0,
"woba": 0.295,
"xwoba": 0.28,
"barrel_percent": 6.9,
"hard_hit_percent": 38.2,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 40,
"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": "694973",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 9.0,
"R": 10.0,
"H": 24.0,
"BB": 9.0,
"SO": 19.0,
"HR": 2.0,
"BF": 108.0,
"Pitches": 415.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.0,
"H": 4.8,
"BB": 1.8,
"SO": 3.8,
"HR": 0.4,
"BF": 21.6,
"Pitches": 83.0
},
"rates": {
"ERA": 3.1974,
"WHIP": 1.3026,
"ER_per_IP": 0.35526,
"H_per_IP": 0.94737,
"BB_per_IP": 0.35526,
"SO_per_IP": 0.75,
"HR_per_IP": 0.07895
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 25.0,
"R": 26.0,
"H": 49.0,
"BB": 22.0,
"SO": 58.0,
"HR": 4.0,
"BF": 220.0,
"Pitches": 895.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.6,
"H": 4.9,
"BB": 2.2,
"SO": 5.8,
"HR": 0.4,
"BF": 22.0,
"Pitches": 89.5
},
"rates": {
"ERA": 4.3269,
"WHIP": 1.3654,
"ER_per_IP": 0.48077,
"H_per_IP": 0.94231,
"BB_per_IP": 0.42308,
"SO_per_IP": 1.11538,
"HR_per_IP": 0.07692
}
},
"season": {
"games": 29,
"totals": {
"IP": 155.0,
"ER": 66.0,
"R": 74.0,
"H": 133.0,
"BB": 45.0,
"SO": 181.0,
"HR": 15.0,
"BF": 640.0,
"Pitches": 2623.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2759,
"R": 2.5517,
"H": 4.5862,
"BB": 1.5517,
"SO": 6.2414,
"HR": 0.5172,
"BF": 22.069,
"Pitches": 90.4483
},
"rates": {
"ERA": 3.8323,
"WHIP": 1.1484,
"ER_per_IP": 0.42581,
"H_per_IP": 0.85806,
"BB_per_IP": 0.29032,
"SO_per_IP": 1.16774,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.22,
"predicted_H": 4.864,
"predicted_BB": 1.909,
"predicted_SO": 4.989,
"predicted_HR": 0.475,
"predicted_ERA": 3.8389,
"predicted_WHIP": 1.301
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.22,
"final": 2.5415,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.864,
"final": 4.9201,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.909,
"final": 1.5344,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.989,
"final": 3.3449,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.475,
"final": 0.2792,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8389,
"final": 3.8389,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.301,
"final": 1.301,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 25,
"H": 49,
"BB": 22,
"SO": 58,
"HR": 4,
"ERA": 4.326923076923077,
"WHIP": 1.3653846153846154,
"K9": 10.038461538461538,
"HR9": 0.6923076923076923,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9908500060546743,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 1.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": "694973",
"player_name": "Paul Skenes",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 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": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "PIT",
"games": 148,
"wins": 74,
"losses": 74,
"win_pct": 0.5,
"runs_scored": 711.0,
"runs_allowed": 685.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1757,
"avg_runs_scored": 4.8041,
"avg_runs_allowed": 4.6284,
"offense_index": 1.0672,
"defense_index": 0.9726,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0915
},
"opponent": {
"team": "CHC",
"games": 148,
"wins": 82,
"losses": 66,
"win_pct": 0.5541,
"runs_scored": 792.0,
"runs_allowed": 654.0,
"run_differential": 138.0,
"run_differential_per_game": 0.9324,
"avg_runs_scored": 5.3514,
"avg_runs_allowed": 4.4189,
"offense_index": 1.1887,
"defense_index": 1.0187,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.3,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1249
},
"edges": {
"quality_edge": -0.0334,
"offense_edge": 0.0672,
"opponent_offense_edge": 0.1887,
"defense_strength": -0.0274,
"opponent_defense_weakness": -0.0187,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9903,
"run_prevention": 1.0346,
"strikeout": 0.9839
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694973",
"profile": {
"available": true,
"pitcher_id": "694973",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 616.0,
"k_percent": 28.3,
"bb_percent": 7.0,
"woba": 0.295,
"xwoba": 0.28,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.7222,
"avg_hyper_speed": 93.8547,
"whiff_percent": 27.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.4571,
"command_and_miss": 0.655,
"regression_edge": 0.4286,
"xwoba_edge": 0.8857,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.0286,
"whiff_edge": 0.4,
"bb_edge": 0.55,
"pitch_design_score": 0.1568
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 92.64834273200604,
"release_spin_rate": 2103.3282783493146,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 92.64834273200604,
"release_spin_rate": 2103.3282783493146,
"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.6483,
"release_spin_rate": 2103.3283,
"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.1568,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1198,
"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.4817,
"sample_weight": 1.0,
"run_prevention_factor": 0.9591,
"strikeout_factor": 1.052,
"walk_factor": 0.956,
"homer_factor": 0.971,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694973",
"espn_id": 4719507,
"player_name": "Paul Skenes",
"team": "PIT",
"role": "pitcher",
"espn_rank": 40,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 40,
"gp_value": 29.0,
"gp_rank": 242,
"gs_value": 29.0,
"gs_rank": 12,
"qs_value": 11.0,
"qs_rank": 46,
"era_value": 3.8322,
"era_rank": 30.0,
"w_value": 10.0,
"w_rank": 29,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 155.0,
"ip_rank": 39,
"h_value": 133.0,
"h_rank": 54,
"er_value": 66.0,
"er_rank": 47,
"hr_value": 15.0,
"hr_rank": 92,
"bb_value": 45.0,
"bb_rank": 62,
"k_value": 181.0,
"k_rank": 14,
"k_per_9_value": 10.509678,
"k_per_9_rank": 9.0,
"whip_value": 1.1483,
"whip_rank": 20.0,
"war_value": 2.8,
"war_rank": 25.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9591,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9591,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.971,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.052,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_PIT@CHC | home | Clay Holmes | Clay Holmes | True | 5.2 | 5.2 | 0 | 2 | 2 | 0 | 5/5 | 3/4 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8255813953488373,
"WHIP": 1.1162790697674418,
"IP": 86.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 5.733,
"recent_avg_IP": 5.867,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0687,
"sample_weight": 1.0,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9577,
"walk_factor": 0.988,
"homer_factor": 0.9808,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.6,
"bb_percent": 8.6,
"woba": 0.262,
"xwoba": 0.311,
"barrel_percent": 4.8,
"hard_hit_percent": 41.8,
"whiff_percent": 21.0
},
"espn_rank": {
"rank": 57,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605280",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 9.0,
"R": 9.0,
"H": 20.0,
"BB": 10.0,
"SO": 19.0,
"HR": 1.0,
"BF": 116.0,
"Pitches": 440.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 4.0,
"BB": 2.0,
"SO": 3.8,
"HR": 0.2,
"BF": 23.2,
"Pitches": 88.0
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.0227,
"ER_per_IP": 0.30682,
"H_per_IP": 0.68182,
"BB_per_IP": 0.34091,
"SO_per_IP": 0.64773,
"HR_per_IP": 0.03409
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 20.0,
"R": 20.0,
"H": 45.0,
"BB": 20.0,
"SO": 46.0,
"HR": 2.0,
"BF": 229.0,
"Pitches": 901.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.5,
"BB": 2.0,
"SO": 4.6,
"HR": 0.2,
"BF": 22.9,
"Pitches": 90.1
},
"rates": {
"ERA": 3.2143,
"WHIP": 1.1607,
"ER_per_IP": 0.35714,
"H_per_IP": 0.80357,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.82143,
"HR_per_IP": 0.03571
}
},
"season": {
"games": 15,
"totals": {
"IP": 86.0,
"ER": 27.0,
"R": 27.0,
"H": 66.0,
"BB": 30.0,
"SO": 65.0,
"HR": 5.0,
"BF": 349.0,
"Pitches": 1338.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 2.0,
"SO": 4.3333,
"HR": 0.3333,
"BF": 23.2667,
"Pitches": 89.2
},
"rates": {
"ERA": 2.8256,
"WHIP": 1.1163,
"ER_per_IP": 0.31395,
"H_per_IP": 0.76744,
"BB_per_IP": 0.34884,
"SO_per_IP": 0.75581,
"HR_per_IP": 0.05814
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.14,
"predicted_H": 4.619,
"predicted_BB": 2.045,
"predicted_SO": 4.524,
"predicted_HR": 0.382,
"predicted_ERA": 3.332,
"predicted_WHIP": 1.1531
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.14,
"final": 2.0762,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.619,
"final": 4.7926,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.045,
"final": 2.4801,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.524,
"final": 4.7409,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.382,
"final": 0.208,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.332,
"final": 3.332,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1531,
"final": 1.1531,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.0,
"ER": 20,
"H": 45,
"BB": 20,
"SO": 46,
"HR": 2,
"ERA": 3.214285714285715,
"WHIP": 1.1607142857142858,
"K9": 7.392857142857144,
"HR9": 0.32142857142857145,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.8605615445162129,
"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": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605280",
"player_name": "Clay Holmes",
"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": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 148,
"wins": 82,
"losses": 66,
"win_pct": 0.5541,
"runs_scored": 792.0,
"runs_allowed": 654.0,
"run_differential": 138.0,
"run_differential_per_game": 0.9324,
"avg_runs_scored": 5.3514,
"avg_runs_allowed": 4.4189,
"offense_index": 1.1887,
"defense_index": 1.0187,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 5.3,
"run_differential": -3.0
},
"available": true,
"quality_score": 0.1249
},
"opponent": {
"team": "PIT",
"games": 148,
"wins": 74,
"losses": 74,
"win_pct": 0.5,
"runs_scored": 711.0,
"runs_allowed": 685.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1757,
"avg_runs_scored": 4.8041,
"avg_runs_allowed": 4.6284,
"offense_index": 1.0672,
"defense_index": 0.9726,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 4.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0915
},
"edges": {
"quality_edge": 0.0334,
"offense_edge": 0.1887,
"opponent_offense_edge": 0.0672,
"defense_strength": 0.0187,
"opponent_defense_weakness": 0.0274,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9992,
"run_prevention": 1.0072,
"strikeout": 0.9956
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605280",
"profile": {
"available": true,
"pitcher_id": "605280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 325.0,
"k_percent": 18.6,
"bb_percent": 8.6,
"woba": 0.262,
"xwoba": 0.311,
"sweet_spot_percent": 27.5,
"barrel_batted_rate": 4.8,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.9631,
"avg_hyper_speed": 94.3396,
"whiff_percent": 21.0,
"swing_percent": 46.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.3158,
"command_and_miss": -0.3886,
"regression_edge": -1.4,
"xwoba_edge": 0.0,
"barrel_edge": 0.5111,
"hard_hit_edge": -0.5429,
"whiff_edge": -0.5714,
"bb_edge": 0.15,
"pitch_design_score": -0.0561
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"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.84672418886161,
"release_spin_rate": 2172.4481875144834,
"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.84672418886161,
"release_spin_rate": 2172.4481875144834,
"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.8467,
"release_spin_rate": 2172.4482,
"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.0561,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4009,
"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.0687,
"sample_weight": 1.0,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9577,
"walk_factor": 0.988,
"homer_factor": 0.9808,
"woba_minus_xwoba": -0.049,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605280",
"espn_id": 32827,
"player_name": "Clay Holmes",
"team": "CHC",
"role": "pitcher",
"espn_rank": 57,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 57,
"gp_value": 15.0,
"gp_rank": 458,
"gs_value": 15.0,
"gs_rank": 138,
"qs_value": 7.0,
"qs_rank": 82,
"era_value": 2.8255,
"era_rank": null,
"w_value": 6.0,
"w_rank": 108,
"l_value": 7.0,
"l_rank": 85,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 86.0,
"ip_rank": 150,
"h_value": 66.0,
"h_rank": 179,
"er_value": 27.0,
"er_rank": 217,
"hr_value": 5.0,
"hr_rank": 321,
"bb_value": 30.0,
"bb_rank": 171,
"k_value": 65.0,
"k_rank": 207,
"k_per_9_value": 6.8023257,
"k_per_9_rank": 37.0,
"whip_value": 1.1162,
"whip_rank": null,
"war_value": 2.46,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0058,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0058,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.988,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9808,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9577,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 110,
"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/20260912_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"
}
} |
| 20260912 | 20260912_SD@SF | away | Michael King | Michael King | True | 6.0 | 7.0 | 3 | 3 | 3 | 0 | 4/5 | 2/0 | 9/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0,
"WHIP": 1.1666666666666667,
"IP": 168.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.793,
"recent_avg_IP": 6.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.082,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9937,
"walk_factor": 1.008,
"homer_factor": 1.0049,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 9.6,
"woba": 0.292,
"xwoba": 0.321,
"barrel_percent": 8.5,
"hard_hit_percent": 33.0,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "650633",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 5.0,
"R": 6.0,
"H": 25.0,
"BB": 11.0,
"SO": 24.0,
"HR": 3.0,
"BF": 127.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.1,
"ER": 1.0,
"R": 1.2,
"H": 5.0,
"BB": 2.2,
"SO": 4.8,
"HR": 0.6,
"BF": 25.4,
"Pitches": 94.6
},
"rates": {
"ERA": 1.4211,
"WHIP": 1.1368,
"ER_per_IP": 0.15789,
"H_per_IP": 0.78947,
"BB_per_IP": 0.34737,
"SO_per_IP": 0.75789,
"HR_per_IP": 0.09474
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 15.0,
"R": 16.0,
"H": 48.0,
"BB": 23.0,
"SO": 52.0,
"HR": 8.0,
"BF": 243.0,
"Pitches": 969.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.6,
"H": 4.8,
"BB": 2.3,
"SO": 5.2,
"HR": 0.8,
"BF": 24.3,
"Pitches": 96.9
},
"rates": {
"ERA": 2.2626,
"WHIP": 1.1899,
"ER_per_IP": 0.2514,
"H_per_IP": 0.80447,
"BB_per_IP": 0.38547,
"SO_per_IP": 0.87151,
"HR_per_IP": 0.13408
}
},
"season": {
"games": 29,
"totals": {
"IP": 168.0,
"ER": 56.0,
"R": 58.0,
"H": 130.0,
"BB": 66.0,
"SO": 144.0,
"HR": 18.0,
"BF": 686.0,
"Pitches": 2700.0
},
"per_game": {
"IP": 5.2,
"ER": 1.931,
"R": 2.0,
"H": 4.4828,
"BB": 2.2759,
"SO": 4.9655,
"HR": 0.6207,
"BF": 23.6552,
"Pitches": 93.1034
},
"rates": {
"ERA": 3.0,
"WHIP": 1.1667,
"ER_per_IP": 0.33333,
"H_per_IP": 0.77381,
"BB_per_IP": 0.39286,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.10714
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.618,
"predicted_H": 4.967,
"predicted_BB": 2.246,
"predicted_SO": 5.073,
"predicted_HR": 0.705,
"predicted_ERA": 2.3989,
"predicted_WHIP": 1.1881
}
},
"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": 3.0,
"form": 1.618,
"final": 2.1876,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.967,
"final": 4.5685,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.246,
"final": 2.1446,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.073,
"final": 6.2794,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.705,
"final": 0.4144,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3989,
"final": 2.3989,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1881,
"final": 1.1881,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 15,
"H": 48,
"BB": 23,
"SO": 52,
"HR": 8,
"ERA": 2.2625698324022343,
"WHIP": 1.1899441340782122,
"K9": 7.843575418994413,
"HR9": 1.206703910614525,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.7542242540134194,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 8.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": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650633",
"player_name": "Michael King",
"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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": "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": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 9.0,
"delta": 1.0,
"percent_delta": 0.125,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 147,
"wins": 79,
"losses": 68,
"win_pct": 0.5374,
"runs_scored": 626.0,
"runs_allowed": 607.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1293,
"avg_runs_scored": 4.2585,
"avg_runs_allowed": 4.1293,
"offense_index": 0.946,
"defense_index": 1.0902,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1176
},
"opponent": {
"team": "SF",
"games": 148,
"wins": 62,
"losses": 86,
"win_pct": 0.4189,
"runs_scored": 622.0,
"runs_allowed": 696.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.2027,
"avg_runs_allowed": 4.7027,
"offense_index": 0.9336,
"defense_index": 0.9573,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.9,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.13
},
"edges": {
"quality_edge": 0.2476,
"offense_edge": -0.054,
"opponent_offense_edge": -0.0664,
"defense_strength": 0.0902,
"opponent_defense_weakness": 0.0427,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0153,
"run_prevention": 0.968,
"strikeout": 1.0127
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650633",
"profile": {
"available": true,
"pitcher_id": "650633",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 657.0,
"k_percent": 21.0,
"bb_percent": 9.6,
"woba": 0.292,
"xwoba": 0.321,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 33.0,
"avg_best_speed": 75.8544,
"avg_hyper_speed": 93.1438,
"whiff_percent": 24.9,
"swing_percent": 46.4
},
"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.0503,
"command_and_miss": -0.0893,
"regression_edge": -0.8286,
"xwoba_edge": -0.2857,
"barrel_edge": -0.3111,
"hard_hit_edge": 0.7143,
"whiff_edge": -0.0143,
"bb_edge": -0.1,
"pitch_design_score": -0.0506
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"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.94608716486087,
"release_spin_rate": 2289.365127955486,
"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.94608716486087,
"release_spin_rate": 2289.365127955486,
"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.9461,
"release_spin_rate": 2289.3651,
"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.0506,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3612,
"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.082,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9937,
"walk_factor": 1.008,
"homer_factor": 1.0049,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650633",
"espn_id": 40429,
"player_name": "Michael King",
"team": "SD",
"role": "pitcher",
"espn_rank": 12,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 12,
"gp_value": 29.0,
"gp_rank": 242,
"gs_value": 29.0,
"gs_rank": 12,
"qs_value": 16.0,
"qs_rank": 16,
"era_value": 3.0,
"era_rank": 14.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": 168.0,
"ip_rank": 13,
"h_value": 130.0,
"h_rank": 62,
"er_value": 56.0,
"er_rank": 84,
"hr_value": 18.0,
"hr_rank": 59,
"bb_value": 66.0,
"bb_rank": 11,
"k_value": 144.0,
"k_rank": 38,
"k_per_9_value": 7.714286,
"k_per_9_rank": 78.0,
"whip_value": 1.1666,
"whip_rank": 23.0,
"war_value": 4.14,
"war_rank": 11.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.007,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.007,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0049,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9937,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_SD@SF | home | Cesar Perdomo | Cesar Perdomo | True | 5.0 | 4.2 | -1 | 2 | 5 | 3 | 5/10 | 1/2 | 5/3 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 0.9,
"WHIP": 0.8,
"IP": 10.0,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1978,
"sample_weight": 0.45,
"run_prevention_factor": 0.9832,
"strikeout_factor": 1.017,
"walk_factor": 0.9685,
"homer_factor": 0.9665,
"regression_flag": "negative_pitcher_regression",
"k_percent": 22.9,
"bb_percent": 5.7,
"woba": 0.236,
"xwoba": 0.275,
"barrel_percent": 4.0,
"hard_hit_percent": 40.0,
"whiff_percent": 30.7
},
"espn_rank": {
"rank": 271,
"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": "702885",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 2.0,
"SO": 8.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 0.5,
"R": 0.5,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 0.5,
"BF": 17.5,
"Pitches": 70.5
},
"rates": {
"ERA": 0.9,
"WHIP": 0.8,
"ER_per_IP": 0.1,
"H_per_IP": 0.6,
"BB_per_IP": 0.2,
"SO_per_IP": 0.8,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 2.0,
"SO": 8.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 0.5,
"R": 0.5,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 0.5,
"BF": 17.5,
"Pitches": 70.5
},
"rates": {
"ERA": 0.9,
"WHIP": 0.8,
"ER_per_IP": 0.1,
"H_per_IP": 0.6,
"BB_per_IP": 0.2,
"SO_per_IP": 0.8,
"HR_per_IP": 0.1
}
},
"season": {
"games": 2,
"totals": {
"IP": 10.0,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 2.0,
"SO": 8.0,
"HR": 1.0,
"BF": 35.0,
"Pitches": 141.0
},
"per_game": {
"IP": 5.0,
"ER": 0.5,
"R": 0.5,
"H": 3.0,
"BB": 1.0,
"SO": 4.0,
"HR": 0.5,
"BF": 17.5,
"Pitches": 70.5
},
"rates": {
"ERA": 0.9,
"WHIP": 0.8,
"ER_per_IP": 0.1,
"H_per_IP": 0.6,
"BB_per_IP": 0.2,
"SO_per_IP": 0.8,
"HR_per_IP": 0.1
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.033,
"predicted_H": 4.537,
"predicted_BB": 1.686,
"predicted_SO": 4.718,
"predicted_HR": 0.696,
"predicted_ERA": 3.4928,
"predicted_WHIP": 1.188
}
},
"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": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.033,
"final": 2.0115,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.537,
"final": 4.8388,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.686,
"final": 1.2389,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.718,
"final": 4.9018,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.696,
"final": 0.2424,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4928,
"final": 3.4928,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.188,
"final": 1.188,
"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": 1,
"H": 6,
"BB": 2,
"SO": 8,
"HR": 1,
"ERA": 0.9,
"WHIP": 0.8,
"K9": 7.2,
"HR9": 0.9,
"games_pitched": 2,
"quality_starts": 1,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.8658475109565034,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702885",
"player_name": "Cesar Perdomo",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": "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": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"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.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": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"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.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": "SF",
"games": 148,
"wins": 62,
"losses": 86,
"win_pct": 0.4189,
"runs_scored": 622.0,
"runs_allowed": 696.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5,
"avg_runs_scored": 4.2027,
"avg_runs_allowed": 4.7027,
"offense_index": 0.9336,
"defense_index": 0.9573,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.9,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.13
},
"opponent": {
"team": "SD",
"games": 147,
"wins": 79,
"losses": 68,
"win_pct": 0.5374,
"runs_scored": 626.0,
"runs_allowed": 607.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1293,
"avg_runs_scored": 4.2585,
"avg_runs_allowed": 4.1293,
"offense_index": 0.946,
"defense_index": 1.0902,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1176
},
"edges": {
"quality_edge": -0.2476,
"offense_edge": -0.0664,
"opponent_offense_edge": -0.054,
"defense_strength": -0.0427,
"opponent_defense_weakness": -0.0902,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.991,
"run_prevention": 1.008,
"strikeout": 0.9969
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702885",
"profile": {
"available": true,
"pitcher_id": "702885",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 15.0,
"k_percent": 22.9,
"bb_percent": 5.7,
"woba": 0.236,
"xwoba": 0.275,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 4.0,
"hard_hit_percent": 40.0,
"avg_best_speed": 80.5452,
"avg_hyper_speed": 93.5421,
"whiff_percent": 30.7,
"swing_percent": 53.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.7437,
"command_and_miss": 0.5179,
"regression_edge": -1.1143,
"xwoba_edge": 1.0286,
"barrel_edge": 0.6889,
"hard_hit_edge": -0.2857,
"whiff_edge": 0.8143,
"bb_edge": 0.875,
"pitch_design_score": -0.0001
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702885",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 58,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 58,
"pitch_usage": 0.0,
"release_speed": 89.84655172413794,
"release_spin_rate": 2209.3275862068967,
"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": 58,
"pitch_usage": 0.0,
"release_speed": 89.84655172413794,
"release_spin_rate": 2209.3275862068967,
"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.8466,
"release_spin_rate": 2209.3276,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0001,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.001,
"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.1978,
"sample_weight": 0.45,
"run_prevention_factor": 0.9832,
"strikeout_factor": 1.017,
"walk_factor": 0.9685,
"homer_factor": 0.9665,
"woba_minus_xwoba": -0.039,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "702885",
"espn_id": 5271881,
"player_name": "Cesar Perdomo",
"team": "SF",
"role": "pitcher",
"espn_rank": 271,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 271,
"gp_value": 2.0,
"gp_rank": 752,
"gs_value": 1.0,
"gs_rank": 297,
"qs_value": 1.0,
"qs_rank": 178,
"era_value": 0.9,
"era_rank": null,
"w_value": 0.0,
"w_rank": 535,
"l_value": 0.0,
"l_rank": 574,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 10.0,
"ip_rank": 622,
"h_value": 6.0,
"h_rank": 703,
"er_value": 1.0,
"er_rank": 782,
"hr_value": 1.0,
"hr_rank": 614,
"bb_value": 2.0,
"bb_rank": 716,
"k_value": 8.0,
"k_rank": 625,
"k_per_9_value": 7.2,
"k_per_9_rank": 27.0,
"whip_value": 0.8,
"whip_rank": null,
"war_value": 0.46,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9924,
"adjusted": 0
},
"predicted_H": {
"original": 3.0,
"factor": 0.9924,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9858,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9849,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0076,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 94,
"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": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_SEA@OAK | away | Bryan Woo | Bryan Woo | True | 5.2 | 6.0 | 1 | 2 | 0 | -2 | 5/3 | 0/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.029850746268656,
"WHIP": 1.0554371002132195,
"IP": 156.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.79,
"recent_avg_IP": 5.8,
"last_start_IP": 8.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.215,
"sample_weight": 1.0,
"run_prevention_factor": 0.9817,
"strikeout_factor": 1.0149,
"walk_factor": 0.92,
"homer_factor": 1.0176,
"regression_flag": "neutral",
"k_percent": 25.0,
"bb_percent": 5.2,
"woba": 0.28,
"xwoba": 0.292,
"barrel_percent": 7.4,
"hard_hit_percent": 43.0,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 102,
"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": "693433",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 9.0,
"R": 10.0,
"H": 17.0,
"BB": 6.0,
"SO": 31.0,
"HR": 5.0,
"BF": 110.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 2.0,
"H": 3.4,
"BB": 1.2,
"SO": 6.2,
"HR": 1.0,
"BF": 22.0,
"Pitches": 88.8
},
"rates": {
"ERA": 2.7931,
"WHIP": 0.7931,
"ER_per_IP": 0.31034,
"H_per_IP": 0.58621,
"BB_per_IP": 0.2069,
"SO_per_IP": 1.06897,
"HR_per_IP": 0.17241
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 24.0,
"R": 27.0,
"H": 49.0,
"BB": 14.0,
"SO": 61.0,
"HR": 9.0,
"BF": 234.0,
"Pitches": 906.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.7,
"H": 4.9,
"BB": 1.4,
"SO": 6.1,
"HR": 0.9,
"BF": 23.4,
"Pitches": 90.6
},
"rates": {
"ERA": 3.7895,
"WHIP": 1.1053,
"ER_per_IP": 0.42105,
"H_per_IP": 0.85965,
"BB_per_IP": 0.24561,
"SO_per_IP": 1.07018,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 27,
"totals": {
"IP": 156.1,
"ER": 70.0,
"R": 75.0,
"H": 132.0,
"BB": 33.0,
"SO": 158.0,
"HR": 18.0,
"BF": 633.0,
"Pitches": 2395.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5926,
"R": 2.7778,
"H": 4.8889,
"BB": 1.2222,
"SO": 5.8519,
"HR": 0.6667,
"BF": 23.4444,
"Pitches": 88.7037
},
"rates": {
"ERA": 4.0299,
"WHIP": 1.0554,
"ER_per_IP": 0.44776,
"H_per_IP": 0.84435,
"BB_per_IP": 0.21109,
"SO_per_IP": 1.01066,
"HR_per_IP": 0.11514
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.246,
"predicted_H": 4.368,
"predicted_BB": 1.386,
"predicted_SO": 5.89,
"predicted_HR": 0.875,
"predicted_ERA": 3.5674,
"predicted_WHIP": 1.0155
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.246,
"final": 2.1437,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.368,
"final": 4.6309,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.386,
"final": 0.8094,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.89,
"final": 4.6878,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.875,
"final": 0.511,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5674,
"final": 3.5674,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0155,
"final": 1.0155,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 24,
"H": 49,
"BB": 14,
"SO": 61,
"HR": 9,
"ERA": 3.789473684210526,
"WHIP": 1.105263157894737,
"K9": 9.631578947368421,
"HR9": 1.4210526315789473,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9238839129372654,
"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": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 148,
"wins": 69,
"losses": 79,
"win_pct": 0.4662,
"runs_scored": 586.0,
"runs_allowed": 661.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5068,
"avg_runs_scored": 3.9595,
"avg_runs_allowed": 4.4662,
"offense_index": 0.8795,
"defense_index": 1.008,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.0,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0906
},
"opponent": {
"team": "OAK",
"games": 148,
"wins": 60,
"losses": 88,
"win_pct": 0.4054,
"runs_scored": 647.0,
"runs_allowed": 833.0,
"run_differential": -186.0,
"run_differential_per_game": -1.2568,
"avg_runs_scored": 4.3716,
"avg_runs_allowed": 5.6284,
"offense_index": 0.9711,
"defense_index": 0.7998,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.8,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.164
},
"edges": {
"quality_edge": 0.0734,
"offense_edge": -0.1205,
"opponent_offense_edge": -0.0289,
"defense_strength": 0.008,
"opponent_defense_weakness": 0.2002,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0043,
"run_prevention": 0.9909,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 604.0,
"k_percent": 25.0,
"bb_percent": 5.2,
"woba": 0.28,
"xwoba": 0.292,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 43.0,
"avg_best_speed": 79.0819,
"avg_hyper_speed": 94.38,
"whiff_percent": 24.6,
"swing_percent": 53.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.248,
"command_and_miss": 0.3729,
"regression_edge": -0.3429,
"xwoba_edge": 0.5429,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.7143,
"whiff_edge": -0.0571,
"bb_edge": 1.0,
"pitch_design_score": 0.168
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"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": 92.84822141045018,
"release_spin_rate": 2269.5437511638643,
"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": 92.84822141045018,
"release_spin_rate": 2269.5437511638643,
"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.8482,
"release_spin_rate": 2269.5438,
"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.168,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1997,
"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.215,
"sample_weight": 1.0,
"run_prevention_factor": 0.9817,
"strikeout_factor": 1.0149,
"walk_factor": 0.92,
"homer_factor": 1.0176,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693433",
"espn_id": 4629089,
"player_name": "Bryan Woo",
"team": "SEA",
"role": "pitcher",
"espn_rank": 102,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 102,
"gp_value": 27.0,
"gp_rank": 294,
"gs_value": 27.0,
"gs_rank": 43,
"qs_value": 15.0,
"qs_rank": 18,
"era_value": 4.0298,
"era_rank": 37.0,
"w_value": 11.0,
"w_rank": 24,
"l_value": 9.0,
"l_rank": 32,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 156.1,
"ip_rank": 35,
"h_value": 132.0,
"h_rank": 56,
"er_value": 70.0,
"er_rank": 32,
"hr_value": 18.0,
"hr_rank": 59,
"bb_value": 33.0,
"bb_rank": 140,
"k_value": 158.0,
"k_rank": 27,
"k_per_9_value": 9.095948,
"k_per_9_rank": 20.0,
"whip_value": 1.0554,
"whip_rank": 11.0,
"war_value": 1.68,
"war_rank": 34.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9817,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9817,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0176,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0149,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 94,
"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/20260912_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"
}
} |
| 20260912 | 20260912_SEA@OAK | home | Gage Jump | Gage Jump | True | 4.1 | 2.0 | -7 | 4 | 5 | 1 | 5/5 | 1/1 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.120689655172414,
"WHIP": 1.489655172413793,
"IP": 96.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.088,
"recent_avg_IP": 4.8,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1338,
"sample_weight": 1.0,
"run_prevention_factor": 1.0114,
"strikeout_factor": 1.02,
"walk_factor": 1.028,
"homer_factor": 1.0125,
"regression_flag": "neutral",
"k_percent": 24.9,
"bb_percent": 10.6,
"woba": 0.333,
"xwoba": 0.326,
"barrel_percent": 6.6,
"hard_hit_percent": 39.5,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 209,
"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": "695611",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 19.0,
"R": 19.0,
"H": 26.0,
"BB": 12.0,
"SO": 22.0,
"HR": 3.0,
"BF": 110.0,
"Pitches": 454.0
},
"per_game": {
"IP": 4.2,
"ER": 3.8,
"R": 3.8,
"H": 5.2,
"BB": 2.4,
"SO": 4.4,
"HR": 0.6,
"BF": 22.0,
"Pitches": 90.8
},
"rates": {
"ERA": 7.125,
"WHIP": 1.5833,
"ER_per_IP": 0.79167,
"H_per_IP": 1.08333,
"BB_per_IP": 0.5,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 36.0,
"R": 37.0,
"H": 51.0,
"BB": 30.0,
"SO": 58.0,
"HR": 6.0,
"BF": 221.0,
"Pitches": 902.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.7,
"H": 5.1,
"BB": 3.0,
"SO": 5.8,
"HR": 0.6,
"BF": 22.1,
"Pitches": 90.2
},
"rates": {
"ERA": 6.75,
"WHIP": 1.6875,
"ER_per_IP": 0.75,
"H_per_IP": 1.0625,
"BB_per_IP": 0.625,
"SO_per_IP": 1.20833,
"HR_per_IP": 0.125
}
},
"season": {
"games": 19,
"totals": {
"IP": 96.2,
"ER": 55.0,
"R": 57.0,
"H": 99.0,
"BB": 45.0,
"SO": 106.0,
"HR": 10.0,
"BF": 425.0,
"Pitches": 1712.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8947,
"R": 3.0,
"H": 5.2105,
"BB": 2.3684,
"SO": 5.5789,
"HR": 0.5263,
"BF": 22.3684,
"Pitches": 90.1053
},
"rates": {
"ERA": 5.1207,
"WHIP": 1.4897,
"ER_per_IP": 0.56897,
"H_per_IP": 1.02414,
"BB_per_IP": 0.46552,
"SO_per_IP": 1.09655,
"HR_per_IP": 0.10345
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.279,
"predicted_H": 5.005,
"predicted_BB": 2.405,
"predicted_SO": 4.938,
"predicted_HR": 0.603,
"predicted_ERA": 6.1632,
"predicted_WHIP": 1.5473
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.279,
"final": 2.7188,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.005,
"final": 5.0028,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.405,
"final": 1.7896,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.938,
"final": 5.8412,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.603,
"final": 1.2149,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.1632,
"final": 6.1632,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5473,
"final": 1.5473,
"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": 36,
"H": 51,
"BB": 30,
"SO": 58,
"HR": 6,
"ERA": 6.750000000000001,
"WHIP": 1.6875000000000002,
"K9": 10.875000000000002,
"HR9": 1.1250000000000002,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 1.2714990445162127,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695611",
"player_name": "Gage Jump",
"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": 2.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.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": 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.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 148,
"wins": 60,
"losses": 88,
"win_pct": 0.4054,
"runs_scored": 647.0,
"runs_allowed": 833.0,
"run_differential": -186.0,
"run_differential_per_game": -1.2568,
"avg_runs_scored": 4.3716,
"avg_runs_allowed": 5.6284,
"offense_index": 0.9711,
"defense_index": 0.7998,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 3.8,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.164
},
"opponent": {
"team": "SEA",
"games": 148,
"wins": 69,
"losses": 79,
"win_pct": 0.4662,
"runs_scored": 586.0,
"runs_allowed": 661.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5068,
"avg_runs_scored": 3.9595,
"avg_runs_allowed": 4.4662,
"offense_index": 0.8795,
"defense_index": 1.008,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 5.0,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0906
},
"edges": {
"quality_edge": -0.0734,
"offense_edge": -0.0289,
"opponent_offense_edge": -0.1205,
"defense_strength": -0.2002,
"opponent_defense_weakness": -0.008,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9959,
"run_prevention": 1.0044,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695611",
"profile": {
"available": true,
"pitcher_id": "695611",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 404.0,
"k_percent": 24.9,
"bb_percent": 10.6,
"woba": 0.333,
"xwoba": 0.326,
"sweet_spot_percent": 40.2,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 39.5,
"avg_best_speed": 78.9303,
"avg_hyper_speed": 94.3916,
"whiff_percent": 25.6,
"swing_percent": 48.4
},
"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.3526,
"command_and_miss": 0.1464,
"regression_edge": 0.2,
"xwoba_edge": -0.4286,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.0857,
"bb_edge": -0.35,
"pitch_design_score": 0.0705
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695611",
"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": 91.10816450027431,
"release_spin_rate": 2302.0143419416327,
"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": 91.10816450027431,
"release_spin_rate": 2302.0143419416327,
"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.1082,
"release_spin_rate": 2302.0143,
"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.0705,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5037,
"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.1338,
"sample_weight": 1.0,
"run_prevention_factor": 1.0114,
"strikeout_factor": 1.02,
"walk_factor": 1.028,
"homer_factor": 1.0125,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695611",
"espn_id": 5023852,
"player_name": "Gage Jump",
"team": "ATH",
"role": "pitcher",
"espn_rank": 209,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 209,
"gp_value": 19.0,
"gp_rank": 405,
"gs_value": 19.0,
"gs_rank": 105,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 5.1206,
"era_rank": null,
"w_value": 6.0,
"w_rank": 108,
"l_value": 10.0,
"l_rank": 20,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 96.2,
"ip_rank": 134,
"h_value": 99.0,
"h_rank": 118,
"er_value": 55.0,
"er_rank": 92,
"hr_value": 10.0,
"hr_rank": 162,
"bb_value": 45.0,
"bb_rank": 62,
"k_value": 106.0,
"k_rank": 90,
"k_per_9_value": 9.868965,
"k_per_9_rank": 18.0,
"whip_value": 1.4896,
"whip_rank": null,
"war_value": 0.81,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0114,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0114,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.028,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0125,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.02,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"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/20260912_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"
}
} |
| 20260912 | 20260912_TEX@ARI | away | Kumar Rocker | Kumar Rocker | True | 4.2 | 4.0 | -2 | 5 | 1 | -4 | 7/2 | 4/2 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.611386138613862,
"WHIP": 1.4405940594059408,
"IP": 134.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.875,
"recent_avg_IP": 4.333,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1625,
"sample_weight": 1.0,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0023,
"walk_factor": 1.002,
"homer_factor": 1.0346,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 9.3,
"woba": 0.338,
"xwoba": 0.329,
"barrel_percent": 7.6,
"hard_hit_percent": 39.8,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 235,
"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": "677958",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 14.0,
"R": 15.0,
"H": 28.0,
"BB": 13.0,
"SO": 24.0,
"HR": 4.0,
"BF": 112.0,
"Pitches": 438.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.0,
"H": 5.6,
"BB": 2.6,
"SO": 4.8,
"HR": 0.8,
"BF": 22.4,
"Pitches": 87.6
},
"rates": {
"ERA": 5.3239,
"WHIP": 1.7324,
"ER_per_IP": 0.59155,
"H_per_IP": 1.1831,
"BB_per_IP": 0.5493,
"SO_per_IP": 1.01408,
"HR_per_IP": 0.16901
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 32.0,
"R": 33.0,
"H": 58.0,
"BB": 23.0,
"SO": 53.0,
"HR": 11.0,
"BF": 231.0,
"Pitches": 849.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.3,
"H": 5.8,
"BB": 2.3,
"SO": 5.3,
"HR": 1.1,
"BF": 23.1,
"Pitches": 84.9
},
"rates": {
"ERA": 5.7219,
"WHIP": 1.6093,
"ER_per_IP": 0.63576,
"H_per_IP": 1.15232,
"BB_per_IP": 0.45695,
"SO_per_IP": 1.05298,
"HR_per_IP": 0.21854
}
},
"season": {
"games": 27,
"totals": {
"IP": 134.2,
"ER": 69.0,
"R": 71.0,
"H": 139.0,
"BB": 55.0,
"SO": 127.0,
"HR": 20.0,
"BF": 593.0,
"Pitches": 2281.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5556,
"R": 2.6296,
"H": 5.1481,
"BB": 2.037,
"SO": 4.7037,
"HR": 0.7407,
"BF": 21.963,
"Pitches": 84.4815
},
"rates": {
"ERA": 4.6114,
"WHIP": 1.4406,
"ER_per_IP": 0.51238,
"H_per_IP": 1.03218,
"BB_per_IP": 0.40842,
"SO_per_IP": 0.94307,
"HR_per_IP": 0.14851
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.784,
"predicted_H": 5.379,
"predicted_BB": 2.268,
"predicted_SO": 4.832,
"predicted_HR": 0.851,
"predicted_ERA": 5.1972,
"predicted_WHIP": 1.586
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.784,
"final": 3.7058,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.379,
"final": 6.0533,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.268,
"final": 2.9885,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.832,
"final": 3.6539,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.851,
"final": 0.497,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1972,
"final": 5.1972,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.586,
"final": 1.586,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 32,
"H": 58,
"BB": 23,
"SO": 53,
"HR": 11,
"ERA": 5.7218543046357615,
"WHIP": 1.609271523178808,
"K9": 9.476821192052979,
"HR9": 1.9668874172185429,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-04T00:00:00"
},
"recent_form_boost": 1.1538769418672061,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677958",
"player_name": "Kumar Rocker",
"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": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 5.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 611.0,
"runs_allowed": 660.0,
"run_differential": -49.0,
"run_differential_per_game": -0.3311,
"avg_runs_scored": 4.1284,
"avg_runs_allowed": 4.4595,
"offense_index": 0.9171,
"defense_index": 1.0095,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.4,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0869
},
"opponent": {
"team": "ARI",
"games": 148,
"wins": 79,
"losses": 69,
"win_pct": 0.5338,
"runs_scored": 657.0,
"runs_allowed": 650.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0473,
"avg_runs_scored": 4.4392,
"avg_runs_allowed": 4.3919,
"offense_index": 0.9861,
"defense_index": 1.025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.0,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0695
},
"edges": {
"quality_edge": -0.1564,
"offense_edge": -0.0829,
"opponent_offense_edge": -0.0139,
"defense_strength": 0.0095,
"opponent_defense_weakness": -0.025,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9946,
"run_prevention": 1.0046,
"strikeout": 0.9964
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677958",
"profile": {
"available": true,
"pitcher_id": "677958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 21.4,
"bb_percent": 9.3,
"woba": 0.338,
"xwoba": 0.329,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 39.8,
"avg_best_speed": 77.9499,
"avg_hyper_speed": 94.3778,
"whiff_percent": 26.0,
"swing_percent": 47.8
},
"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.334,
"command_and_miss": 0.0064,
"regression_edge": 0.2571,
"xwoba_edge": -0.5143,
"barrel_edge": -0.1111,
"hard_hit_edge": -0.2571,
"whiff_edge": 0.1429,
"bb_edge": -0.025,
"pitch_design_score": -0.0361
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.20467080695931,
"release_spin_rate": 2136.0321020952806,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.20467080695931,
"release_spin_rate": 2136.0321020952806,
"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.2047,
"release_spin_rate": 2136.0321,
"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.0361,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2577,
"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.1625,
"sample_weight": 1.0,
"run_prevention_factor": 1.0138,
"strikeout_factor": 1.0023,
"walk_factor": 1.002,
"homer_factor": 1.0346,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677958",
"espn_id": 4414525,
"player_name": "Kumar Rocker",
"team": "TEX",
"role": "pitcher",
"espn_rank": 235,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 235,
"gp_value": 27.0,
"gp_rank": 294,
"gs_value": 24.0,
"gs_rank": 72,
"qs_value": 6.0,
"qs_rank": 92,
"era_value": 4.6113,
"era_rank": null,
"w_value": 5.0,
"w_rank": 149,
"l_value": 11.0,
"l_rank": 11,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 0.0,
"hld_rank": 353,
"ip_value": 134.2,
"ip_rank": 73,
"h_value": 139.0,
"h_rank": 40,
"er_value": 69.0,
"er_rank": 39,
"hr_value": 20.0,
"hr_rank": 40,
"bb_value": 55.0,
"bb_rank": 26,
"k_value": 127.0,
"k_rank": 57,
"k_per_9_value": 8.487623,
"k_per_9_rank": 21.0,
"whip_value": 1.4405,
"whip_rank": null,
"war_value": 0.62,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0138,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0138,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.002,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0346,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0023,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |
| 20260912 | 20260912_TEX@ARI | home | Brandon Pfaadt | Brandon Pfaadt | True | 6.1 | 6.2 | 1 | 4 | 6 | 2 | 6/10 | 1/0 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5284090909090913,
"WHIP": 1.1505681818181819,
"IP": 117.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.333,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 0.9429,
"walk_factor": 0.936,
"homer_factor": 0.9748,
"regression_flag": "neutral",
"k_percent": 16.0,
"bb_percent": 6.0,
"woba": 0.294,
"xwoba": 0.3,
"barrel_percent": 7.5,
"hard_hit_percent": 34.0,
"whiff_percent": 21.0
},
"espn_rank": {
"rank": 96,
"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": "694297",
"report_date": "20260912",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 14.0,
"R": 14.0,
"H": 27.0,
"BB": 5.0,
"SO": 23.0,
"HR": 5.0,
"BF": 126.0,
"Pitches": 464.0
},
"per_game": {
"IP": 6.1,
"ER": 2.8,
"R": 2.8,
"H": 5.4,
"BB": 1.0,
"SO": 4.6,
"HR": 1.0,
"BF": 25.2,
"Pitches": 92.8
},
"rates": {
"ERA": 3.9789,
"WHIP": 1.0105,
"ER_per_IP": 0.44211,
"H_per_IP": 0.85263,
"BB_per_IP": 0.15789,
"SO_per_IP": 0.72632,
"HR_per_IP": 0.15789
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.2,
"ER": 18.0,
"R": 19.0,
"H": 53.0,
"BB": 11.0,
"SO": 36.0,
"HR": 5.0,
"BF": 251.0,
"Pitches": 922.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.9,
"H": 5.3,
"BB": 1.1,
"SO": 3.6,
"HR": 0.5,
"BF": 25.1,
"Pitches": 92.2
},
"rates": {
"ERA": 2.5445,
"WHIP": 1.0052,
"ER_per_IP": 0.28272,
"H_per_IP": 0.83246,
"BB_per_IP": 0.17277,
"SO_per_IP": 0.56545,
"HR_per_IP": 0.07853
}
},
"season": {
"games": 26,
"totals": {
"IP": 117.1,
"ER": 46.0,
"R": 50.0,
"H": 106.0,
"BB": 29.0,
"SO": 77.0,
"HR": 13.0,
"BF": 482.0,
"Pitches": 1764.0
},
"per_game": {
"IP": 4.2,
"ER": 1.7692,
"R": 1.9231,
"H": 4.0769,
"BB": 1.1154,
"SO": 2.9615,
"HR": 0.5,
"BF": 18.5385,
"Pitches": 67.8462
},
"rates": {
"ERA": 3.5284,
"WHIP": 1.1506,
"ER_per_IP": 0.39205,
"H_per_IP": 0.90341,
"BB_per_IP": 0.24716,
"SO_per_IP": 0.65625,
"HR_per_IP": 0.1108
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.402,
"predicted_H": 5.295,
"predicted_BB": 1.281,
"predicted_SO": 4.25,
"predicted_HR": 0.755,
"predicted_ERA": 3.5711,
"predicted_WHIP": 1.0861
}
},
"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": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.402,
"final": 3.0702,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.295,
"final": 5.5898,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.281,
"final": 1.1635,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.25,
"final": 4.1455,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.755,
"final": 0.8574,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5711,
"final": 3.5711,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0861,
"final": 1.0861,
"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.2,
"ER": 18,
"H": 53,
"BB": 11,
"SO": 36,
"HR": 5,
"ERA": 2.5445026178010473,
"WHIP": 1.0052356020942408,
"K9": 5.0890052356020945,
"HR9": 0.7068062827225131,
"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-05T00:00:00"
},
"recent_form_boost": 0.7813239790711867,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 4.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": "694297",
"player_name": "Brandon Pfaadt",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 148,
"wins": 79,
"losses": 69,
"win_pct": 0.5338,
"runs_scored": 657.0,
"runs_allowed": 650.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0473,
"avg_runs_scored": 4.4392,
"avg_runs_allowed": 4.3919,
"offense_index": 0.9861,
"defense_index": 1.025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.0,
"run_differential": 2.0
},
"available": true,
"quality_score": 0.0695
},
"opponent": {
"team": "TEX",
"games": 148,
"wins": 72,
"losses": 76,
"win_pct": 0.4865,
"runs_scored": 611.0,
"runs_allowed": 660.0,
"run_differential": -49.0,
"run_differential_per_game": -0.3311,
"avg_runs_scored": 4.1284,
"avg_runs_allowed": 4.4595,
"offense_index": 0.9171,
"defense_index": 1.0095,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.4,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0869
},
"edges": {
"quality_edge": 0.1564,
"offense_edge": -0.0139,
"opponent_offense_edge": -0.0829,
"defense_strength": 0.025,
"opponent_defense_weakness": -0.0095,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0103,
"run_prevention": 0.9764,
"strikeout": 1.0113
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694297",
"profile": {
"available": true,
"pitcher_id": "694297",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 16.0,
"bb_percent": 6.0,
"woba": 0.294,
"xwoba": 0.3,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 34.0,
"avg_best_speed": 77.895,
"avg_hyper_speed": 93.323,
"whiff_percent": 21.0,
"swing_percent": 49.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": 0.2749,
"command_and_miss": -0.4257,
"regression_edge": -0.1714,
"xwoba_edge": 0.3143,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.5714,
"whiff_edge": -0.5714,
"bb_edge": 0.8,
"pitch_design_score": -0.0433
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694297",
"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.07616026140555,
"release_spin_rate": 2457.18590918647,
"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.07616026140555,
"release_spin_rate": 2457.18590918647,
"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.0762,
"release_spin_rate": 2457.1859,
"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.0433,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3091,
"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.0227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9981,
"strikeout_factor": 0.9429,
"walk_factor": 0.936,
"homer_factor": 0.9748,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694297",
"espn_id": 4721302,
"player_name": "Brandon Pfaadt",
"team": "ARI",
"role": "pitcher",
"espn_rank": 96,
"espn_total_ranked": 859,
"metrics": {
"espn_rank": 96,
"gp_value": 26.0,
"gp_rank": 310,
"gs_value": 16.0,
"gs_rank": 131,
"qs_value": 8.0,
"qs_rank": 75,
"era_value": 3.5284,
"era_rank": null,
"w_value": 7.0,
"w_rank": 86,
"l_value": 2.0,
"l_rank": 330,
"sv_value": 0.0,
"sv_rank": 250,
"hld_value": 2.0,
"hld_rank": 231,
"ip_value": 117.1,
"ip_rank": 97,
"h_value": 106.0,
"h_rank": 112,
"er_value": 46.0,
"er_rank": 127,
"hr_value": 13.0,
"hr_rank": 125,
"bb_value": 29.0,
"bb_rank": 179,
"k_value": 77.0,
"k_rank": 158,
"k_per_9_value": 5.90625,
"k_per_9_rank": 43.0,
"whip_value": 1.1505,
"whip_rank": null,
"war_value": 1.72,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9981,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9981,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9748,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9429,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 112,
"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": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260912_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"
}
} |