| 20260825 | 20260825_BAL@STL | away | Chris Bassitt | Chris Bassitt | True | 5.0 | 6.2 | 5 | 3 | 1 | -2 | 5/6 | 2/0 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.079207920792079,
"WHIP": 1.618811881188119,
"IP": 67.1,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.75,
"recent_avg_IP": 5.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.371,
"sample_weight": 1.0,
"run_prevention_factor": 1.0315,
"strikeout_factor": 0.9346,
"walk_factor": 0.984,
"homer_factor": 0.9679,
"regression_flag": "neutral",
"k_percent": 14.9,
"bb_percent": 8.4,
"woba": 0.361,
"xwoba": 0.345,
"barrel_percent": 4.4,
"hard_hit_percent": 35.8,
"whiff_percent": 20.9
},
"espn_rank": {
"rank": 354,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 12.0,
"R": 12.0,
"H": 29.0,
"BB": 7.0,
"SO": 16.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 377.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 5.8,
"BB": 1.4,
"SO": 3.2,
"HR": 0.6,
"BF": 21.4,
"Pitches": 75.4
},
"rates": {
"ERA": 4.4384,
"WHIP": 1.4795,
"ER_per_IP": 0.49315,
"H_per_IP": 1.19178,
"BB_per_IP": 0.28767,
"SO_per_IP": 0.65753,
"HR_per_IP": 0.12329
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 27.0,
"R": 27.0,
"H": 60.0,
"BB": 15.0,
"SO": 39.0,
"HR": 6.0,
"BF": 226.0,
"Pitches": 811.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 2.7,
"H": 6.0,
"BB": 1.5,
"SO": 3.9,
"HR": 0.6,
"BF": 22.6,
"Pitches": 81.1
},
"rates": {
"ERA": 4.7338,
"WHIP": 1.461,
"ER_per_IP": 0.52597,
"H_per_IP": 1.16883,
"BB_per_IP": 0.29221,
"SO_per_IP": 0.75974,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 14,
"totals": {
"IP": 67.1,
"ER": 38.0,
"R": 39.0,
"H": 83.0,
"BB": 26.0,
"SO": 46.0,
"HR": 7.0,
"BF": 309.0,
"Pitches": 1162.0
},
"per_game": {
"IP": 4.2,
"ER": 2.7143,
"R": 2.7857,
"H": 5.9286,
"BB": 1.8571,
"SO": 3.2857,
"HR": 0.5,
"BF": 22.0714,
"Pitches": 83.0
},
"rates": {
"ERA": 5.0792,
"WHIP": 1.6188,
"ER_per_IP": 0.56436,
"H_per_IP": 1.23267,
"BB_per_IP": 0.38614,
"SO_per_IP": 0.68317,
"HR_per_IP": 0.10396
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.548,
"predicted_H": 5.621,
"predicted_BB": 1.606,
"predicted_SO": 3.779,
"predicted_HR": 0.62,
"predicted_ERA": 4.6312,
"predicted_WHIP": 1.4596
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.548,
"final": 2.7565,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.621,
"final": 5.3346,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.606,
"final": 1.7877,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.779,
"final": 4.3421,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.62,
"final": 0.7953,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6312,
"final": 4.6312,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4596,
"final": 1.4596,
"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": 27,
"H": 60,
"BB": 15,
"SO": 39,
"HR": 6,
"ERA": 4.733766233766234,
"WHIP": 1.4610389610389611,
"K9": 6.837662337662338,
"HR9": 1.051948051948052,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.0396397064118876,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": "BAL",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 583.0,
"runs_allowed": 618.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2672,
"avg_runs_scored": 4.4504,
"avg_runs_allowed": 4.7176,
"offense_index": 0.9971,
"defense_index": 0.9461,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0492
},
"opponent": {
"team": "STL",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 585.0,
"runs_allowed": 587.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0152,
"avg_runs_scored": 4.4318,
"avg_runs_allowed": 4.447,
"offense_index": 0.9929,
"defense_index": 1.0037,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 5.4,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0019
},
"edges": {
"quality_edge": -0.0473,
"offense_edge": -0.0029,
"opponent_offense_edge": -0.0071,
"defense_strength": -0.0539,
"opponent_defense_weakness": -0.0037,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 1.0066,
"strikeout": 0.9991
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 285.0,
"k_percent": 14.9,
"bb_percent": 8.4,
"woba": 0.361,
"xwoba": 0.345,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 4.4,
"hard_hit_percent": 35.8,
"avg_best_speed": 76.7912,
"avg_hyper_speed": 93.5498,
"whiff_percent": 20.9,
"swing_percent": 45.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4108,
"command_and_miss": -0.6339,
"regression_edge": 0.4571,
"xwoba_edge": -0.9714,
"barrel_edge": 0.6222,
"hard_hit_edge": 0.2857,
"whiff_edge": -0.6214,
"bb_edge": 0.2,
"pitch_design_score": -0.2738
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 84.95752297745956,
"release_spin_rate": 2161.8563874770916,
"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": 72,
"pitch_usage": 0.0,
"release_speed": 84.95752297745956,
"release_spin_rate": 2161.8563874770916,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.9575,
"release_spin_rate": 2161.8564,
"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.2738,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9561,
"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.371,
"sample_weight": 1.0,
"run_prevention_factor": 1.0315,
"strikeout_factor": 0.9346,
"walk_factor": 0.984,
"homer_factor": 0.9679,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605135",
"espn_id": 33148,
"player_name": "Chris Bassitt",
"team": "BAL",
"role": "pitcher",
"espn_rank": 354,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 354,
"gp_value": 14.0,
"gp_rank": 451,
"gs_value": 12.0,
"gs_rank": 147,
"qs_value": 2.0,
"qs_rank": 152,
"era_value": 5.0792,
"era_rank": null,
"w_value": 4.0,
"w_rank": 172,
"l_value": 4.0,
"l_rank": 161,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 67.1,
"ip_rank": 173,
"h_value": 83.0,
"h_rank": 123,
"er_value": 38.0,
"er_rank": 140,
"hr_value": 7.0,
"hr_rank": 210,
"bb_value": 26.0,
"bb_rank": 180,
"k_value": 46.0,
"k_rank": 291,
"k_per_9_value": 6.1485147,
"k_per_9_rank": 45,
"whip_value": 1.6188,
"whip_rank": null,
"war_value": 0.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0315,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0315,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9679,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9346,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "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/20260825_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_BAL@STL | home | Matthew Liberatore | Matthew Liberatore | True | 5.1 | 4.0 | -4 | 2 | 8 | 6 | 3/8 | 2/1 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.04,
"WHIP": 1.44,
"IP": 125.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.2,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3431,
"sample_weight": 1.0,
"run_prevention_factor": 1.0292,
"strikeout_factor": 0.9957,
"walk_factor": 0.978,
"homer_factor": 1.0757,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 8.1,
"woba": 0.349,
"xwoba": 0.336,
"barrel_percent": 9.0,
"hard_hit_percent": 41.7,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 727,
"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": "669461",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 6.0,
"SO": 30.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 441.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6,
"R": 2.6,
"H": 4.8,
"BB": 1.2,
"SO": 6.0,
"HR": 0.6,
"BF": 20.8,
"Pitches": 88.2
},
"rates": {
"ERA": 4.5,
"WHIP": 1.1538,
"ER_per_IP": 0.5,
"H_per_IP": 0.92308,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.15385,
"HR_per_IP": 0.11538
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 28.0,
"R": 29.0,
"H": 50.0,
"BB": 17.0,
"SO": 58.0,
"HR": 6.0,
"BF": 221.0,
"Pitches": 881.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.9,
"H": 5.0,
"BB": 1.7,
"SO": 5.8,
"HR": 0.6,
"BF": 22.1,
"Pitches": 88.1
},
"rates": {
"ERA": 4.7848,
"WHIP": 1.2722,
"ER_per_IP": 0.53165,
"H_per_IP": 0.94937,
"BB_per_IP": 0.32278,
"SO_per_IP": 1.10127,
"HR_per_IP": 0.11392
}
},
"season": {
"games": 25,
"totals": {
"IP": 125.0,
"ER": 70.0,
"R": 75.0,
"H": 136.0,
"BB": 44.0,
"SO": 125.0,
"HR": 21.0,
"BF": 541.0,
"Pitches": 2109.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 3.0,
"H": 5.44,
"BB": 1.76,
"SO": 5.0,
"HR": 0.84,
"BF": 21.64,
"Pitches": 84.36
},
"rates": {
"ERA": 5.04,
"WHIP": 1.44,
"ER_per_IP": 0.56,
"H_per_IP": 1.088,
"BB_per_IP": 0.352,
"SO_per_IP": 1.0,
"HR_per_IP": 0.168
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.714,
"predicted_H": 5.051,
"predicted_BB": 1.57,
"predicted_SO": 5.63,
"predicted_HR": 0.674,
"predicted_ERA": 4.6769,
"predicted_WHIP": 1.2678
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.714,
"final": 2.4138,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.051,
"final": 4.1887,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.57,
"final": 1.7508,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.63,
"final": 5.3651,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.674,
"final": 0.3906,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6769,
"final": 4.6769,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2678,
"final": 1.2678,
"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.2,
"ER": 28,
"H": 50,
"BB": 17,
"SO": 58,
"HR": 6,
"ERA": 4.784810126582279,
"WHIP": 1.2721518987341773,
"K9": 9.911392405063292,
"HR9": 1.0253164556962027,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.040659967796073,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "669461",
"player_name": "Matthew Liberatore",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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.1,
"delta": 0.1,
"percent_delta": 0.02,
"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": "STL",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 585.0,
"runs_allowed": 587.0,
"run_differential": -2.0,
"run_differential_per_game": -0.0152,
"avg_runs_scored": 4.4318,
"avg_runs_allowed": 4.447,
"offense_index": 0.9929,
"defense_index": 1.0037,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.6,
"avg_runs_allowed": 5.4,
"run_differential": 2.0
},
"available": true,
"quality_score": -0.0019
},
"opponent": {
"team": "BAL",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 583.0,
"runs_allowed": 618.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2672,
"avg_runs_scored": 4.4504,
"avg_runs_allowed": 4.7176,
"offense_index": 0.9971,
"defense_index": 0.9461,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0492
},
"edges": {
"quality_edge": 0.0473,
"offense_edge": -0.0071,
"opponent_offense_edge": -0.0029,
"defense_strength": 0.0037,
"opponent_defense_weakness": 0.0539,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0021,
"run_prevention": 0.9968,
"strikeout": 1.0017
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669461",
"profile": {
"available": true,
"pitcher_id": "669461",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 518.0,
"k_percent": 23.1,
"bb_percent": 8.1,
"woba": 0.349,
"xwoba": 0.336,
"sweet_spot_percent": 40.3,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 41.7,
"avg_best_speed": 80.1964,
"avg_hyper_speed": 94.5105,
"whiff_percent": 23.4,
"swing_percent": 46.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6867,
"command_and_miss": 0.0332,
"regression_edge": 0.3714,
"xwoba_edge": -0.7143,
"barrel_edge": -0.4,
"hard_hit_edge": -0.5571,
"whiff_edge": -0.2643,
"bb_edge": 0.275,
"pitch_design_score": -0.0543
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669461",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.87728695994706,
"release_spin_rate": 2373.177135487591,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 88.87728695994706,
"release_spin_rate": 2373.177135487591,
"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.8773,
"release_spin_rate": 2373.1771,
"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.0543,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3881,
"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.3431,
"sample_weight": 1.0,
"run_prevention_factor": 1.0292,
"strikeout_factor": 0.9957,
"walk_factor": 0.978,
"homer_factor": 1.0757,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669461",
"espn_id": 41173,
"player_name": "Matthew Liberatore",
"team": "STL",
"role": "pitcher",
"espn_rank": 727,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 727,
"gp_value": 25.0,
"gp_rank": 270,
"gs_value": 25.0,
"gs_rank": 30,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 5.04,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 11.0,
"l_rank": 7,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 125.0,
"ip_rank": 66,
"h_value": 136.0,
"h_rank": 19,
"er_value": 70.0,
"er_rank": 11,
"hr_value": 21.0,
"hr_rank": 20,
"bb_value": 44.0,
"bb_rank": 44,
"k_value": 125.0,
"k_rank": 44,
"k_per_9_value": 9.0,
"k_per_9_rank": 18,
"whip_value": 1.44,
"whip_rank": null,
"war_value": -0.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0292,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0292,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.978,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0757,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9957,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260825_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_BOS@MIA | away | Payton Tolle | Payton Tolle | True | 6.0 | 5.1 | -2 | 2 | 2 | 0 | 3/4 | 0/2 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.075,
"WHIP": 1.0833333333333333,
"IP": 120.0,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.714,
"recent_avg_IP": 6.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7655,
"sample_weight": 1.0,
"run_prevention_factor": 0.9349,
"strikeout_factor": 1.0431,
"walk_factor": 0.952,
"homer_factor": 0.915,
"regression_flag": "neutral",
"k_percent": 27.7,
"bb_percent": 6.8,
"woba": 0.283,
"xwoba": 0.255,
"barrel_percent": 6.5,
"hard_hit_percent": 33.5,
"whiff_percent": 27.1
},
"espn_rank": {
"rank": 63,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "801139",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 24.0,
"BB": 7.0,
"SO": 38.0,
"HR": 4.0,
"BF": 116.0,
"Pitches": 451.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.8,
"BB": 1.4,
"SO": 7.6,
"HR": 0.8,
"BF": 23.2,
"Pitches": 90.2
},
"rates": {
"ERA": 2.3736,
"WHIP": 1.022,
"ER_per_IP": 0.26374,
"H_per_IP": 0.79121,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.25275,
"HR_per_IP": 0.13187
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 19.0,
"R": 19.0,
"H": 45.0,
"BB": 15.0,
"SO": 72.0,
"HR": 7.0,
"BF": 222.0,
"Pitches": 860.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 1.9,
"H": 4.5,
"BB": 1.5,
"SO": 7.2,
"HR": 0.7,
"BF": 22.2,
"Pitches": 86.0
},
"rates": {
"ERA": 3.0719,
"WHIP": 1.0778,
"ER_per_IP": 0.34132,
"H_per_IP": 0.80838,
"BB_per_IP": 0.26946,
"SO_per_IP": 1.29341,
"HR_per_IP": 0.12575
}
},
"season": {
"games": 21,
"totals": {
"IP": 120.0,
"ER": 41.0,
"R": 45.0,
"H": 97.0,
"BB": 33.0,
"SO": 134.0,
"HR": 13.0,
"BF": 483.0,
"Pitches": 1811.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9524,
"R": 2.1429,
"H": 4.619,
"BB": 1.5714,
"SO": 6.381,
"HR": 0.619,
"BF": 23.0,
"Pitches": 86.2381
},
"rates": {
"ERA": 3.075,
"WHIP": 1.0833,
"ER_per_IP": 0.34167,
"H_per_IP": 0.80833,
"BB_per_IP": 0.275,
"SO_per_IP": 1.11667,
"HR_per_IP": 0.10833
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.014,
"predicted_H": 4.884,
"predicted_BB": 1.61,
"predicted_SO": 6.923,
"predicted_HR": 0.757,
"predicted_ERA": 3.0976,
"predicted_WHIP": 1.1096
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.014,
"final": 2.008,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.884,
"final": 4.0715,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.61,
"final": 0.9157,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.923,
"final": 7.3875,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.757,
"final": 0.4305,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0976,
"final": 3.0976,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1096,
"final": 1.1096,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 19,
"H": 45,
"BB": 15,
"SO": 72,
"HR": 7,
"ERA": 3.07185628742515,
"WHIP": 1.0778443113772456,
"K9": 11.640718562874252,
"HR9": 1.131736526946108,
"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-08-19T00:00:00"
},
"recent_form_boost": 0.8430949712069727,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 0.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "801139",
"player_name": "Payton Tolle",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 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": 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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.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": 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": 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": {}
}
],
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "BOS",
"games": 131,
"wins": 72,
"losses": 59,
"win_pct": 0.5496,
"runs_scored": 593.0,
"runs_allowed": 492.0,
"run_differential": 101.0,
"run_differential_per_game": 0.771,
"avg_runs_scored": 4.5267,
"avg_runs_allowed": 3.7557,
"offense_index": 1.0123,
"defense_index": 1.1906,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.0,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.207
},
"opponent": {
"team": "MIA",
"games": 132,
"wins": 67,
"losses": 65,
"win_pct": 0.5076,
"runs_scored": 575.0,
"runs_allowed": 556.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1439,
"avg_runs_scored": 4.3561,
"avg_runs_allowed": 4.2121,
"offense_index": 0.9741,
"defense_index": 1.0616,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.2,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0242
},
"edges": {
"quality_edge": 0.1828,
"offense_edge": 0.0123,
"opponent_offense_edge": -0.0259,
"defense_strength": 0.1906,
"opponent_defense_weakness": -0.0616,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0141,
"run_prevention": 0.9677,
"strikeout": 1.0076
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "801139",
"profile": {
"available": true,
"pitcher_id": "801139",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 456.0,
"k_percent": 27.7,
"bb_percent": 6.8,
"woba": 0.283,
"xwoba": 0.255,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 33.5,
"avg_best_speed": 76.1641,
"avg_hyper_speed": 93.3052,
"whiff_percent": 27.1,
"swing_percent": 55.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9308,
"command_and_miss": 0.5789,
"regression_edge": 0.8,
"xwoba_edge": 1.6,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.6143,
"whiff_edge": 0.2643,
"bb_edge": 0.6,
"pitch_design_score": 0.1719
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.9164359638128,
"release_spin_rate": 2253.1406726268187,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.9164359638128,
"release_spin_rate": 2253.1406726268187,
"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.9164,
"release_spin_rate": 2253.1407,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1719,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2275,
"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.7655,
"sample_weight": 1.0,
"run_prevention_factor": 0.9349,
"strikeout_factor": 1.0431,
"walk_factor": 0.952,
"homer_factor": 0.915,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "801139",
"espn_id": 4966140,
"player_name": "Payton Tolle",
"team": "BOS",
"role": "pitcher",
"espn_rank": 63,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 63,
"gp_value": 21.0,
"gp_rank": 348,
"gs_value": 21.0,
"gs_rank": 81,
"qs_value": 11.0,
"qs_rank": 37,
"era_value": 3.075,
"era_rank": null,
"w_value": 8.0,
"w_rank": 46,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 120.0,
"ip_rank": 79,
"h_value": 97.0,
"h_rank": 102,
"er_value": 41.0,
"er_rank": 131,
"hr_value": 13.0,
"hr_rank": 104,
"bb_value": 33.0,
"bb_rank": 116,
"k_value": 134.0,
"k_rank": 37,
"k_per_9_value": 10.05,
"k_per_9_rank": 12,
"whip_value": 1.0833,
"whip_rank": null,
"war_value": 2.09,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9349,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9349,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.915,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0431,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 8,
"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": "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/20260825_BOS@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"
}
} |
| 20260825 | 20260825_BOS@MIA | home | Tyler Phillips | Tyler Phillips | True | 5.0 | 4.2 | -1 | 0 | 1 | 1 | 1/3 | 0/3 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6655629139072845,
"WHIP": 1.3708609271523178,
"IP": 100.2,
"games_started": null,
"games_pitched": 31,
"role_avg_IP": 4.571,
"recent_avg_IP": 4.733,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3767,
"sample_weight": 1.0,
"run_prevention_factor": 1.032,
"strikeout_factor": 0.9814,
"walk_factor": 1.01,
"homer_factor": 1.0746,
"regression_flag": "neutral",
"k_percent": 18.2,
"bb_percent": 9.7,
"woba": 0.321,
"xwoba": 0.336,
"barrel_percent": 8.1,
"hard_hit_percent": 44.3,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 142,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 100.2,
"season_ERA": 3.666,
"season_WHIP": 1.371,
"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": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663969",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 10.0,
"R": 10.0,
"H": 22.0,
"BB": 6.0,
"SO": 21.0,
"HR": 4.0,
"BF": 92.0,
"Pitches": 336.0
},
"per_game": {
"IP": 4.1,
"ER": 2.0,
"R": 2.0,
"H": 4.4,
"BB": 1.2,
"SO": 4.2,
"HR": 0.8,
"BF": 18.4,
"Pitches": 67.2
},
"rates": {
"ERA": 4.2188,
"WHIP": 1.3125,
"ER_per_IP": 0.46875,
"H_per_IP": 1.03125,
"BB_per_IP": 0.28125,
"SO_per_IP": 0.98438,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.1,
"ER": 21.0,
"R": 22.0,
"H": 46.0,
"BB": 12.0,
"SO": 30.0,
"HR": 7.0,
"BF": 182.0,
"Pitches": 669.0
},
"per_game": {
"IP": 4.1,
"ER": 2.1,
"R": 2.2,
"H": 4.6,
"BB": 1.2,
"SO": 3.0,
"HR": 0.7,
"BF": 18.2,
"Pitches": 66.9
},
"rates": {
"ERA": 4.4646,
"WHIP": 1.3701,
"ER_per_IP": 0.49606,
"H_per_IP": 1.08661,
"BB_per_IP": 0.28346,
"SO_per_IP": 0.70866,
"HR_per_IP": 0.16535
}
},
"season": {
"games": 31,
"totals": {
"IP": 100.2,
"ER": 41.0,
"R": 44.0,
"H": 96.0,
"BB": 42.0,
"SO": 79.0,
"HR": 13.0,
"BF": 434.0,
"Pitches": 1617.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3226,
"R": 1.4194,
"H": 3.0968,
"BB": 1.3548,
"SO": 2.5484,
"HR": 0.4194,
"BF": 14.0,
"Pitches": 52.1613
},
"rates": {
"ERA": 3.6656,
"WHIP": 1.3709,
"ER_per_IP": 0.40728,
"H_per_IP": 0.95364,
"BB_per_IP": 0.41722,
"SO_per_IP": 0.78477,
"HR_per_IP": 0.12914
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.004,
"predicted_H": 4.369,
"predicted_BB": 1.35,
"predicted_SO": 3.664,
"predicted_HR": 0.703,
"predicted_ERA": 4.2398,
"predicted_WHIP": 1.3443
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.004,
"final": 1.185,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.369,
"final": 2.9921,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.35,
"final": 0.7983,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.664,
"final": 3.8013,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.703,
"final": 0.4157,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2398,
"final": 4.2398,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3443,
"final": 1.3443,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.1,
"ER": 21,
"H": 46,
"BB": 12,
"SO": 30,
"HR": 7,
"ERA": 4.464566929133858,
"WHIP": 1.3700787401574803,
"K9": 6.377952755905511,
"HR9": 1.4881889763779528,
"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-08-18T00:00:00"
},
"recent_form_boost": 1.0070807791187084,
"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": 1.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
}
}
],
"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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 132,
"wins": 67,
"losses": 65,
"win_pct": 0.5076,
"runs_scored": 575.0,
"runs_allowed": 556.0,
"run_differential": 19.0,
"run_differential_per_game": 0.1439,
"avg_runs_scored": 4.3561,
"avg_runs_allowed": 4.2121,
"offense_index": 0.9741,
"defense_index": 1.0616,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.2,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0242
},
"opponent": {
"team": "BOS",
"games": 131,
"wins": 72,
"losses": 59,
"win_pct": 0.5496,
"runs_scored": 593.0,
"runs_allowed": 492.0,
"run_differential": 101.0,
"run_differential_per_game": 0.771,
"avg_runs_scored": 4.5267,
"avg_runs_allowed": 3.7557,
"offense_index": 1.0123,
"defense_index": 1.1906,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 4.0,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.207
},
"edges": {
"quality_edge": -0.1828,
"offense_edge": -0.0259,
"opponent_offense_edge": 0.0123,
"defense_strength": 0.0616,
"opponent_defense_weakness": -0.1906,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.994,
"run_prevention": 1.0049,
"strikeout": 0.9935
},
"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": 411.0,
"k_percent": 18.2,
"bb_percent": 9.7,
"woba": 0.321,
"xwoba": 0.336,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 44.3,
"avg_best_speed": 80.06,
"avg_hyper_speed": 94.5686,
"whiff_percent": 25.8,
"swing_percent": 46.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4761,
"command_and_miss": -0.2418,
"regression_edge": -0.4286,
"xwoba_edge": -0.7143,
"barrel_edge": -0.2,
"hard_hit_edge": -0.9286,
"whiff_edge": 0.0786,
"bb_edge": -0.125,
"pitch_design_score": -0.0541
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663969",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 88.88192254718405,
"release_spin_rate": 2054.5891137790895,
"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": 72,
"pitch_usage": 0.0,
"release_speed": 88.88192254718405,
"release_spin_rate": 2054.5891137790895,
"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.8819,
"release_spin_rate": 2054.5891,
"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.0541,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3863,
"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.3767,
"sample_weight": 1.0,
"run_prevention_factor": 1.032,
"strikeout_factor": 0.9814,
"walk_factor": 1.01,
"homer_factor": 1.0746,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663969",
"espn_id": 41247,
"player_name": "Tyler Phillips",
"team": "MIA",
"role": "pitcher",
"espn_rank": 142,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 142,
"gp_value": 31.0,
"gp_rank": 195,
"gs_value": 14.0,
"gs_rank": 135,
"qs_value": 2.0,
"qs_rank": 152,
"era_value": 3.6655,
"era_rank": null,
"w_value": 3.0,
"w_rank": 224,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 2.0,
"sv_rank": 84,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 100.2,
"ip_rank": 106,
"h_value": 96.0,
"h_rank": 105,
"er_value": 41.0,
"er_rank": 131,
"hr_value": 13.0,
"hr_rank": 104,
"bb_value": 42.0,
"bb_rank": 56,
"k_value": 79.0,
"k_rank": 133,
"k_per_9_value": 7.062914,
"k_per_9_rank": 33,
"whip_value": 1.3708,
"whip_rank": null,
"war_value": 1.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.032,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 1.01,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0746,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9814,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 16,
"Pitches": 66,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260825_BOS@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"
}
} |
| 20260825 | 20260825_CHC@ARI | away | Clay Holmes | Clay Holmes | True | 6.0 | 7.0 | 3 | 0 | 0 | 0 | 0/2 | 1/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.4902912621359223,
"WHIP": 1.1067961165048543,
"IP": 68.2,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 5.722,
"recent_avg_IP": 5.2,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0799,
"sample_weight": 1.0,
"run_prevention_factor": 1.0068,
"strikeout_factor": 0.9471,
"walk_factor": 0.982,
"homer_factor": 0.9825,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.0,
"bb_percent": 8.3,
"woba": 0.262,
"xwoba": 0.311,
"barrel_percent": 4.9,
"hard_hit_percent": 41.9,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 57,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 68.2,
"season_ERA": 2.49,
"season_WHIP": 1.107,
"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": "605280",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 11.0,
"R": 11.0,
"H": 25.0,
"BB": 9.0,
"SO": 19.0,
"HR": 1.0,
"BF": 110.0,
"Pitches": 434.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 5.0,
"BB": 1.8,
"SO": 3.8,
"HR": 0.2,
"BF": 22.0,
"Pitches": 86.8
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.3077,
"ER_per_IP": 0.42308,
"H_per_IP": 0.96154,
"BB_per_IP": 0.34615,
"SO_per_IP": 0.73077,
"HR_per_IP": 0.03846
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 17.0,
"R": 17.0,
"H": 46.0,
"BB": 18.0,
"SO": 41.0,
"HR": 3.0,
"BF": 229.0,
"Pitches": 884.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.7,
"H": 4.6,
"BB": 1.8,
"SO": 4.1,
"HR": 0.3,
"BF": 22.9,
"Pitches": 88.4
},
"rates": {
"ERA": 2.7321,
"WHIP": 1.1429,
"ER_per_IP": 0.30357,
"H_per_IP": 0.82143,
"BB_per_IP": 0.32143,
"SO_per_IP": 0.73214,
"HR_per_IP": 0.05357
}
},
"season": {
"games": 12,
"totals": {
"IP": 68.2,
"ER": 19.0,
"R": 19.0,
"H": 53.0,
"BB": 23.0,
"SO": 50.0,
"HR": 4.0,
"BF": 278.0,
"Pitches": 1064.0
},
"per_game": {
"IP": 5.2,
"ER": 1.5833,
"R": 1.5833,
"H": 4.4167,
"BB": 1.9167,
"SO": 4.1667,
"HR": 0.3333,
"BF": 23.1667,
"Pitches": 88.6667
},
"rates": {
"ERA": 2.4903,
"WHIP": 1.1068,
"ER_per_IP": 0.2767,
"H_per_IP": 0.77184,
"BB_per_IP": 0.33495,
"SO_per_IP": 0.72816,
"HR_per_IP": 0.05825
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.242,
"predicted_H": 5.119,
"predicted_BB": 1.951,
"predicted_SO": 4.492,
"predicted_HR": 0.436,
"predicted_ERA": 3.5663,
"predicted_WHIP": 1.2493
}
},
"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": 0.0,
"form": 2.242,
"final": 1.1787,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 5.119,
"final": 2.6913,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.951,
"final": 1.5,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.492,
"final": 5.2072,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.436,
"final": 0.2292,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5663,
"final": 3.5663,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2493,
"final": 1.2493,
"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": 17,
"H": 46,
"BB": 18,
"SO": 41,
"HR": 3,
"ERA": 2.7321428571428568,
"WHIP": 1.1428571428571428,
"K9": 6.5892857142857135,
"HR9": 0.4821428571428571,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.8065025310872121,
"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": 0.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
},
{
"step": "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": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"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": 1.0,
"predicted_ER": 0.0,
"predicted_H": 0.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": 0.0,
"predicted_H": 0.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": 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": 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": 0.0,
"predicted_H": 0.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": 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": 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": 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": 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": "CHC",
"games": 132,
"wins": 76,
"losses": 56,
"win_pct": 0.5758,
"runs_scored": 691.0,
"runs_allowed": 569.0,
"run_differential": 122.0,
"run_differential_per_game": 0.9242,
"avg_runs_scored": 5.2348,
"avg_runs_allowed": 4.3106,
"offense_index": 1.1704,
"defense_index": 1.0376,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.3,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1781
},
"opponent": {
"team": "ARI",
"games": 132,
"wins": 69,
"losses": 63,
"win_pct": 0.5227,
"runs_scored": 598.0,
"runs_allowed": 596.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0152,
"avg_runs_scored": 4.5303,
"avg_runs_allowed": 4.5152,
"offense_index": 1.0129,
"defense_index": 0.9906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.5,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0212
},
"edges": {
"quality_edge": 0.1569,
"offense_edge": 0.1704,
"opponent_offense_edge": 0.0129,
"defense_strength": 0.0376,
"opponent_defense_weakness": 0.0094,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0069,
"run_prevention": 0.9905,
"strikeout": 1.0037
},
"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": 254.0,
"k_percent": 18.0,
"bb_percent": 8.3,
"woba": 0.262,
"xwoba": 0.311,
"sweet_spot_percent": 26.1,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 41.9,
"avg_best_speed": 78.6612,
"avg_hyper_speed": 94.2922,
"whiff_percent": 20.0,
"swing_percent": 46.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3331,
"command_and_miss": -0.4746,
"regression_edge": -1.4,
"xwoba_edge": 0.0,
"barrel_edge": 0.5111,
"hard_hit_edge": -0.5857,
"whiff_edge": -0.75,
"bb_edge": 0.225,
"pitch_design_score": -0.0376
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.17575290406722,
"release_spin_rate": 2172.7138980615478,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.17575290406722,
"release_spin_rate": 2172.7138980615478,
"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.1758,
"release_spin_rate": 2172.7139,
"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.0376,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2688,
"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.0799,
"sample_weight": 1.0,
"run_prevention_factor": 1.0068,
"strikeout_factor": 0.9471,
"walk_factor": 0.982,
"homer_factor": 0.9825,
"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": 830,
"metrics": {
"espn_rank": 57,
"gp_value": 12.0,
"gp_rank": 472,
"gs_value": 12.0,
"gs_rank": 147,
"qs_value": 5.0,
"qs_rank": 100,
"era_value": 2.4902,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 68.2,
"ip_rank": 168,
"h_value": 53.0,
"h_rank": 198,
"er_value": 19.0,
"er_rank": 305,
"hr_value": 4.0,
"hr_rank": 346,
"bb_value": 23.0,
"bb_rank": 218,
"k_value": 50.0,
"k_rank": 262,
"k_per_9_value": 6.553398,
"k_per_9_rank": 42,
"whip_value": 1.1067,
"whip_rank": null,
"war_value": 2.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0068,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0068,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.982,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9825,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9471,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260825_CHC@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"
}
} |
| 20260825 | 20260825_CHC@ARI | home | Brandon Pfaadt | Brandon Pfaadt | True | 6.1 | 6.2 | 1 | 3 | 4 | 1 | 5/6 | 3/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.386440677966102,
"WHIP": 1.1389830508474577,
"IP": 98.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.923,
"recent_avg_IP": 6.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1065,
"sample_weight": 1.0,
"run_prevention_factor": 0.9909,
"strikeout_factor": 0.9511,
"walk_factor": 0.936,
"homer_factor": 0.9686,
"regression_flag": "neutral",
"k_percent": 17.1,
"bb_percent": 6.0,
"woba": 0.291,
"xwoba": 0.293,
"barrel_percent": 7.2,
"hard_hit_percent": 35.0,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 94,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694297",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.1,
"ER": 5.0,
"R": 6.0,
"H": 22.0,
"BB": 4.0,
"SO": 24.0,
"HR": 3.0,
"BF": 123.0,
"Pitches": 465.0
},
"per_game": {
"IP": 6.2,
"ER": 1.0,
"R": 1.2,
"H": 4.4,
"BB": 0.8,
"SO": 4.8,
"HR": 0.6,
"BF": 24.6,
"Pitches": 93.0
},
"rates": {
"ERA": 1.35,
"WHIP": 0.78,
"ER_per_IP": 0.15,
"H_per_IP": 0.66,
"BB_per_IP": 0.12,
"SO_per_IP": 0.72,
"HR_per_IP": 0.09
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 12.0,
"R": 13.0,
"H": 48.0,
"BB": 7.0,
"SO": 38.0,
"HR": 4.0,
"BF": 232.0,
"Pitches": 854.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.3,
"H": 4.8,
"BB": 0.7,
"SO": 3.8,
"HR": 0.4,
"BF": 23.2,
"Pitches": 85.4
},
"rates": {
"ERA": 1.7901,
"WHIP": 0.9116,
"ER_per_IP": 0.1989,
"H_per_IP": 0.79558,
"BB_per_IP": 0.11602,
"SO_per_IP": 0.62983,
"HR_per_IP": 0.0663
}
},
"season": {
"games": 23,
"totals": {
"IP": 98.1,
"ER": 37.0,
"R": 41.0,
"H": 88.0,
"BB": 24.0,
"SO": 69.0,
"HR": 11.0,
"BF": 403.0,
"Pitches": 1481.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6087,
"R": 1.7826,
"H": 3.8261,
"BB": 1.0435,
"SO": 3.0,
"HR": 0.4783,
"BF": 17.5217,
"Pitches": 64.3913
},
"rates": {
"ERA": 3.3864,
"WHIP": 1.139,
"ER_per_IP": 0.37627,
"H_per_IP": 0.89492,
"BB_per_IP": 0.24407,
"SO_per_IP": 0.70169,
"HR_per_IP": 0.11186
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.594,
"predicted_H": 4.79,
"predicted_BB": 1.106,
"predicted_SO": 4.411,
"predicted_HR": 0.586,
"predicted_ERA": 2.3777,
"predicted_WHIP": 0.9776
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.594,
"final": 2.1922,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.79,
"final": 4.8793,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.106,
"final": 1.9118,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.411,
"final": 5.0871,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.586,
"final": 0.3367,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3777,
"final": 2.3777,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9776,
"final": 0.9776,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.1,
"ER": 12,
"H": 48,
"BB": 7,
"SO": 38,
"HR": 4,
"ERA": 1.7900552486187844,
"WHIP": 0.9116022099447514,
"K9": 5.668508287292817,
"HR9": 0.5966850828729282,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.6947363018054442,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
}
],
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 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": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 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": 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": 132,
"wins": 69,
"losses": 63,
"win_pct": 0.5227,
"runs_scored": 598.0,
"runs_allowed": 596.0,
"run_differential": 2.0,
"run_differential_per_game": 0.0152,
"avg_runs_scored": 4.5303,
"avg_runs_allowed": 4.5152,
"offense_index": 1.0129,
"defense_index": 0.9906,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 5.5,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.0212
},
"opponent": {
"team": "CHC",
"games": 132,
"wins": 76,
"losses": 56,
"win_pct": 0.5758,
"runs_scored": 691.0,
"runs_allowed": 569.0,
"run_differential": 122.0,
"run_differential_per_game": 0.9242,
"avg_runs_scored": 5.2348,
"avg_runs_allowed": 4.3106,
"offense_index": 1.1704,
"defense_index": 1.0376,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.3,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.1781
},
"edges": {
"quality_edge": -0.1569,
"offense_edge": 0.0129,
"opponent_offense_edge": 0.1704,
"defense_strength": -0.0094,
"opponent_defense_weakness": -0.0376,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9866,
"run_prevention": 1.036,
"strikeout": 0.9817
},
"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": 376.0,
"k_percent": 17.1,
"bb_percent": 6.0,
"woba": 0.291,
"xwoba": 0.293,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 35.0,
"avg_best_speed": 78.328,
"avg_hyper_speed": 93.4472,
"whiff_percent": 21.6,
"swing_percent": 49.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.3629,
"command_and_miss": -0.3375,
"regression_edge": -0.0571,
"xwoba_edge": 0.5143,
"barrel_edge": 0.0,
"hard_hit_edge": 0.4,
"whiff_edge": -0.5214,
"bb_edge": 0.8,
"pitch_design_score": -0.041
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694297",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.11465507139849,
"release_spin_rate": 2451.253692155381,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.11465507139849,
"release_spin_rate": 2451.253692155381,
"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.1147,
"release_spin_rate": 2451.2537,
"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.041,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2932,
"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.1065,
"sample_weight": 1.0,
"run_prevention_factor": 0.9909,
"strikeout_factor": 0.9511,
"walk_factor": 0.936,
"homer_factor": 0.9686,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694297",
"espn_id": 4721302,
"player_name": "Brandon Pfaadt",
"team": "ARI",
"role": "pitcher",
"espn_rank": 94,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 94,
"gp_value": 23.0,
"gp_rank": 314,
"gs_value": 13.0,
"gs_rank": 142,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 3.3864,
"era_rank": null,
"w_value": 7.0,
"w_rank": 73,
"l_value": 1.0,
"l_rank": 402,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 2.0,
"hld_rank": 221,
"ip_value": 98.1,
"ip_rank": 107,
"h_value": 88.0,
"h_rank": 114,
"er_value": 37.0,
"er_rank": 144,
"hr_value": 11.0,
"hr_rank": 134,
"bb_value": 24.0,
"bb_rank": 205,
"k_value": 69.0,
"k_rank": 162,
"k_per_9_value": 6.315254,
"k_per_9_rank": 40,
"whip_value": 1.1389,
"whip_rank": null,
"war_value": 1.65,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9909,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9909,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.936,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9686,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9511,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 118,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260825_CHC@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"
}
} |
| 20260825 | 20260825_CIN@SF | away | Brady Singer | Brady Singer | True | 5.0 | 5.2 | 2 | 2 | 3 | 1 | 5/6 | 2/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.716455696202532,
"WHIP": 1.420253164556962,
"IP": 131.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.267,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4515,
"sample_weight": 1.0,
"run_prevention_factor": 1.0384,
"strikeout_factor": 0.9769,
"walk_factor": 0.964,
"homer_factor": 1.0855,
"regression_flag": "neutral",
"k_percent": 18.4,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.343,
"barrel_percent": 9.5,
"hard_hit_percent": 40.8,
"whiff_percent": 24.8
},
"espn_rank": {
"rank": 125,
"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": "663903",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 17.0,
"R": 17.0,
"H": 33.0,
"BB": 11.0,
"SO": 19.0,
"HR": 4.0,
"BF": 129.0,
"Pitches": 500.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.4,
"H": 6.6,
"BB": 2.2,
"SO": 3.8,
"HR": 0.8,
"BF": 25.8,
"Pitches": 100.0
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5529,
"ER_per_IP": 0.6,
"H_per_IP": 1.16471,
"BB_per_IP": 0.38824,
"SO_per_IP": 0.67059,
"HR_per_IP": 0.14118
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 30.0,
"R": 31.0,
"H": 59.0,
"BB": 18.0,
"SO": 48.0,
"HR": 8.0,
"BF": 254.0,
"Pitches": 977.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.1,
"H": 5.9,
"BB": 1.8,
"SO": 4.8,
"HR": 0.8,
"BF": 25.4,
"Pitches": 97.7
},
"rates": {
"ERA": 4.6023,
"WHIP": 1.3125,
"ER_per_IP": 0.51136,
"H_per_IP": 1.00568,
"BB_per_IP": 0.30682,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 25,
"totals": {
"IP": 131.2,
"ER": 69.0,
"R": 74.0,
"H": 144.0,
"BB": 43.0,
"SO": 107.0,
"HR": 25.0,
"BF": 583.0,
"Pitches": 2272.0
},
"per_game": {
"IP": 5.1,
"ER": 2.76,
"R": 2.96,
"H": 5.76,
"BB": 1.72,
"SO": 4.28,
"HR": 1.0,
"BF": 23.32,
"Pitches": 90.88
},
"rates": {
"ERA": 4.7165,
"WHIP": 1.4203,
"ER_per_IP": 0.52405,
"H_per_IP": 1.09367,
"BB_per_IP": 0.32658,
"SO_per_IP": 0.81266,
"HR_per_IP": 0.18987
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.082,
"predicted_H": 6.078,
"predicted_BB": 1.983,
"predicted_SO": 4.426,
"predicted_HR": 0.842,
"predicted_ERA": 4.9072,
"predicted_WHIP": 1.4259
}
},
"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.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.082,
"final": 2.6271,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.078,
"final": 5.6248,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.983,
"final": 1.9901,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.426,
"final": 4.6673,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.842,
"final": 0.488,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9072,
"final": 4.9072,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4259,
"final": 1.4259,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.2,
"ER": 30,
"H": 59,
"BB": 18,
"SO": 48,
"HR": 8,
"ERA": 4.6022727272727275,
"WHIP": 1.3125,
"K9": 7.363636363636364,
"HR9": 1.2272727272727273,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 1.021133212905394,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 5,
"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": 2.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": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": "CIN",
"games": 132,
"wins": 62,
"losses": 70,
"win_pct": 0.4697,
"runs_scored": 537.0,
"runs_allowed": 636.0,
"run_differential": -99.0,
"run_differential_per_game": -0.75,
"avg_runs_scored": 4.0682,
"avg_runs_allowed": 4.8182,
"offense_index": 0.9096,
"defense_index": 0.9283,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.5,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.188
},
"opponent": {
"team": "SF",
"games": 131,
"wins": 53,
"losses": 78,
"win_pct": 0.4046,
"runs_scored": 528.0,
"runs_allowed": 603.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5725,
"avg_runs_scored": 4.0305,
"avg_runs_allowed": 4.6031,
"offense_index": 0.9011,
"defense_index": 0.9717,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.6,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.2215
},
"edges": {
"quality_edge": 0.0335,
"offense_edge": -0.0904,
"opponent_offense_edge": -0.0989,
"defense_strength": -0.0717,
"opponent_defense_weakness": 0.0283,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0031,
"run_prevention": 0.9897,
"strikeout": 1.0089
},
"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": 545.0,
"k_percent": 18.4,
"bb_percent": 7.4,
"woba": 0.351,
"xwoba": 0.343,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 40.8,
"avg_best_speed": 80.9576,
"avg_hyper_speed": 94.6254,
"whiff_percent": 24.8,
"swing_percent": 44.7
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.7507,
"command_and_miss": -0.1639,
"regression_edge": 0.2286,
"xwoba_edge": -0.9143,
"barrel_edge": -0.5111,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.0643,
"bb_edge": 0.45,
"pitch_design_score": -0.1423
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663903",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 87.30662066127576,
"release_spin_rate": 2382.9859605092684,
"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.3066,
"release_spin_rate": 2382.986,
"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.1423,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0164,
"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.4515,
"sample_weight": 1.0,
"run_prevention_factor": 1.0384,
"strikeout_factor": 0.9769,
"walk_factor": 0.964,
"homer_factor": 1.0855,
"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": 125,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 125,
"gp_value": 25.0,
"gp_rank": 270,
"gs_value": 25.0,
"gs_rank": 30,
"qs_value": 10.0,
"qs_rank": 49,
"era_value": 4.7164,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 11.0,
"l_rank": 7,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 131.2,
"ip_rank": 55,
"h_value": 144.0,
"h_rank": 11,
"er_value": 69.0,
"er_rank": 13,
"hr_value": 25.0,
"hr_rank": 10,
"bb_value": 43.0,
"bb_rank": 49,
"k_value": 107.0,
"k_rank": 76,
"k_per_9_value": 7.313924,
"k_per_9_rank": 37,
"whip_value": 1.4202,
"whip_rank": null,
"war_value": 1.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0384,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0384,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0855,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9769,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"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."
}
],
"provenance": {
"prediction": "output/games/20260825_CIN@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"
}
} |
| 20260825 | 20260825_CIN@SF | home | Adrian Houser | Adrian Houser | True | 4.2 | 1.2 | -9 | 3 | 0 | -3 | 3/1 | 2/0 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2110091743119265,
"WHIP": 1.3394495412844036,
"IP": 109.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.562,
"recent_avg_IP": 3.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5012,
"sample_weight": 1.0,
"run_prevention_factor": 1.0426,
"strikeout_factor": 0.9214,
"walk_factor": 0.962,
"homer_factor": 1.0793,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 7.3,
"woba": 0.327,
"xwoba": 0.341,
"barrel_percent": 8.8,
"hard_hit_percent": 42.2,
"whiff_percent": 17.8
},
"espn_rank": {
"rank": 223,
"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": "605288",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 2.0,
"R": 2.0,
"H": 17.0,
"BB": 5.0,
"SO": 15.0,
"HR": 0.0,
"BF": 82.0,
"Pitches": 305.0
},
"per_game": {
"IP": 4.1,
"ER": 0.4,
"R": 0.4,
"H": 3.4,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 16.4,
"Pitches": 61.0
},
"rates": {
"ERA": 0.8571,
"WHIP": 1.0476,
"ER_per_IP": 0.09524,
"H_per_IP": 0.80952,
"BB_per_IP": 0.2381,
"SO_per_IP": 0.71429,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.2,
"ER": 7.0,
"R": 7.0,
"H": 29.0,
"BB": 9.0,
"SO": 24.0,
"HR": 3.0,
"BF": 153.0,
"Pitches": 557.0
},
"per_game": {
"IP": 4.0,
"ER": 0.7,
"R": 0.7,
"H": 2.9,
"BB": 0.9,
"SO": 2.4,
"HR": 0.3,
"BF": 15.3,
"Pitches": 55.7
},
"rates": {
"ERA": 1.5882,
"WHIP": 0.958,
"ER_per_IP": 0.17647,
"H_per_IP": 0.73109,
"BB_per_IP": 0.22689,
"SO_per_IP": 0.60504,
"HR_per_IP": 0.07563
}
},
"season": {
"games": 26,
"totals": {
"IP": 109.0,
"ER": 51.0,
"R": 56.0,
"H": 111.0,
"BB": 35.0,
"SO": 75.0,
"HR": 16.0,
"BF": 471.0,
"Pitches": 1734.0
},
"per_game": {
"IP": 4.1,
"ER": 1.9615,
"R": 2.1538,
"H": 4.2692,
"BB": 1.3462,
"SO": 2.8846,
"HR": 0.6154,
"BF": 18.1154,
"Pitches": 66.6923
},
"rates": {
"ERA": 4.211,
"WHIP": 1.3394,
"ER_per_IP": 0.46789,
"H_per_IP": 1.01835,
"BB_per_IP": 0.3211,
"SO_per_IP": 0.68807,
"HR_per_IP": 0.14679
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.061,
"predicted_H": 3.639,
"predicted_BB": 1.156,
"predicted_SO": 3.067,
"predicted_HR": 0.303,
"predicted_ERA": 2.2256,
"predicted_WHIP": 1.1181
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.061,
"final": 1.8718,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.639,
"final": 3.3718,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.156,
"final": 1.5089,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.067,
"final": 3.8753,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.303,
"final": 0.5945,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2256,
"final": 2.2256,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1181,
"final": 1.1181,
"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": 39.2,
"ER": 7,
"H": 29,
"BB": 9,
"SO": 24,
"HR": 3,
"ERA": 1.588235294117647,
"WHIP": 0.9579831932773109,
"K9": 5.4453781512605035,
"HR9": 0.6806722689075629,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.6911517307309413,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605288",
"player_name": "Adrian Houser",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 131,
"wins": 53,
"losses": 78,
"win_pct": 0.4046,
"runs_scored": 528.0,
"runs_allowed": 603.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5725,
"avg_runs_scored": 4.0305,
"avg_runs_allowed": 4.6031,
"offense_index": 0.9011,
"defense_index": 0.9717,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.6,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.2215
},
"opponent": {
"team": "CIN",
"games": 132,
"wins": 62,
"losses": 70,
"win_pct": 0.4697,
"runs_scored": 537.0,
"runs_allowed": 636.0,
"run_differential": -99.0,
"run_differential_per_game": -0.75,
"avg_runs_scored": 4.0682,
"avg_runs_allowed": 4.8182,
"offense_index": 0.9096,
"defense_index": 0.9283,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.5,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.188
},
"edges": {
"quality_edge": -0.0335,
"offense_edge": -0.0989,
"opponent_offense_edge": -0.0904,
"defense_strength": -0.0283,
"opponent_defense_weakness": 0.0717,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0014,
"run_prevention": 0.99,
"strikeout": 1.0062
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605288",
"profile": {
"available": true,
"pitcher_id": "605288",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 439.0,
"k_percent": 15.7,
"bb_percent": 7.3,
"woba": 0.327,
"xwoba": 0.341,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 42.2,
"avg_best_speed": 78.7062,
"avg_hyper_speed": 94.6927,
"whiff_percent": 17.8,
"swing_percent": 46.2
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5269,
"command_and_miss": -0.6825,
"regression_edge": -0.4,
"xwoba_edge": -0.8571,
"barrel_edge": -0.3556,
"hard_hit_edge": -0.6286,
"whiff_edge": -1.0643,
"bb_edge": 0.475,
"pitch_design_score": 0.1418
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605288",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 55,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 55,
"pitch_usage": 0.0,
"release_speed": 92.37988652271751,
"release_spin_rate": 2135.682251072961,
"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": 55,
"pitch_usage": 0.0,
"release_speed": 92.37988652271751,
"release_spin_rate": 2135.682251072961,
"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.3799,
"release_spin_rate": 2135.6823,
"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.1418,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0129,
"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.5012,
"sample_weight": 1.0,
"run_prevention_factor": 1.0426,
"strikeout_factor": 0.9214,
"walk_factor": 0.962,
"homer_factor": 1.0793,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605288",
"espn_id": 32157,
"player_name": "Adrian Houser",
"team": "SF",
"role": "pitcher",
"espn_rank": 223,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 223,
"gp_value": 25.0,
"gp_rank": 270,
"gs_value": 15.0,
"gs_rank": 121,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 4.0833,
"era_rank": null,
"w_value": 4.0,
"w_rank": 172,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 1.0,
"hld_rank": 251,
"ip_value": 108.0,
"ip_rank": 97,
"h_value": 108.0,
"h_rank": 84,
"er_value": 49.0,
"er_rank": 89,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 34.0,
"bb_rank": 109,
"k_value": 73.0,
"k_rank": 151,
"k_per_9_value": 6.0833335,
"k_per_9_rank": 42,
"whip_value": 1.3148,
"whip_rank": null,
"war_value": 0.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0426,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0426,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0793,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9214,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260825_CIN@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"
}
} |
| 20260825 | 20260825_CLE@LAA | away | Gavin Williams | Gavin Williams | True | 5.2 | 1.1 | -13 | 0 | 5 | 5 | 3/6 | 2/1 | 8/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.724137931034483,
"WHIP": 1.0862068965517242,
"IP": 154.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.949,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1466,
"sample_weight": 1.0,
"run_prevention_factor": 0.9875,
"strikeout_factor": 1.0951,
"walk_factor": 0.97,
"homer_factor": 1.1314,
"regression_flag": "neutral",
"k_percent": 32.4,
"bb_percent": 7.7,
"woba": 0.291,
"xwoba": 0.305,
"barrel_percent": 11.7,
"hard_hit_percent": 47.7,
"whiff_percent": 31.5
},
"espn_rank": {
"rank": 42,
"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": "668909",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 11.0,
"R": 11.0,
"H": 18.0,
"BB": 11.0,
"SO": 45.0,
"HR": 5.0,
"BF": 113.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 3.6,
"BB": 2.2,
"SO": 9.0,
"HR": 1.0,
"BF": 22.6,
"Pitches": 95.8
},
"rates": {
"ERA": 3.4941,
"WHIP": 1.0235,
"ER_per_IP": 0.38824,
"H_per_IP": 0.63529,
"BB_per_IP": 0.38824,
"SO_per_IP": 1.58824,
"HR_per_IP": 0.17647
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 23.0,
"R": 24.0,
"H": 41.0,
"BB": 17.0,
"SO": 90.0,
"HR": 10.0,
"BF": 232.0,
"Pitches": 945.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3,
"R": 2.4,
"H": 4.1,
"BB": 1.7,
"SO": 9.0,
"HR": 1.0,
"BF": 23.2,
"Pitches": 94.5
},
"rates": {
"ERA": 3.569,
"WHIP": 1.0,
"ER_per_IP": 0.39655,
"H_per_IP": 0.7069,
"BB_per_IP": 0.2931,
"SO_per_IP": 1.55172,
"HR_per_IP": 0.17241
}
},
"season": {
"games": 26,
"totals": {
"IP": 154.2,
"ER": 64.0,
"R": 67.0,
"H": 120.0,
"BB": 48.0,
"SO": 201.0,
"HR": 25.0,
"BF": 621.0,
"Pitches": 2457.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4615,
"R": 2.5769,
"H": 4.6154,
"BB": 1.8462,
"SO": 7.7308,
"HR": 0.9615,
"BF": 23.8846,
"Pitches": 94.5
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.0862,
"ER_per_IP": 0.41379,
"H_per_IP": 0.77586,
"BB_per_IP": 0.31034,
"SO_per_IP": 1.29957,
"HR_per_IP": 0.16164
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.366,
"predicted_H": 4.206,
"predicted_BB": 1.968,
"predicted_SO": 8.157,
"predicted_HR": 0.962,
"predicted_ERA": 3.7206,
"predicted_WHIP": 1.0788
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.366,
"final": 1.3767,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.206,
"final": 3.7017,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.968,
"final": 1.9814,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 8.157,
"final": 7.6732,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.962,
"final": 0.5597,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7206,
"final": 3.7206,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0788,
"final": 1.0788,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 23,
"H": 41,
"BB": 17,
"SO": 90,
"HR": 10,
"ERA": 3.5689655172413794,
"WHIP": 1.0,
"K9": 13.96551724137931,
"HR9": 1.5517241379310345,
"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-08-20T00:00:00"
},
"recent_form_boost": 0.8970736517768674,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 7.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": 5.2,
"predicted_ER": 0,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668909",
"player_name": "Gavin Williams",
"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": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 2.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 0.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": "CLE",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 531.0,
"runs_allowed": 538.0,
"run_differential": -7.0,
"run_differential_per_game": -0.053,
"avg_runs_scored": 4.0227,
"avg_runs_allowed": 4.0758,
"offense_index": 0.8994,
"defense_index": 1.0974,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.0635
},
"opponent": {
"team": "LAA",
"games": 132,
"wins": 52,
"losses": 80,
"win_pct": 0.3939,
"runs_scored": 539.0,
"runs_allowed": 611.0,
"run_differential": -72.0,
"run_differential_per_game": -0.5455,
"avg_runs_scored": 4.0833,
"avg_runs_allowed": 4.6288,
"offense_index": 0.9129,
"defense_index": 0.9663,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.8,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.1923
},
"edges": {
"quality_edge": 0.2558,
"offense_edge": -0.1006,
"opponent_offense_edge": -0.0871,
"defense_strength": 0.0974,
"opponent_defense_weakness": 0.0337,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0166,
"run_prevention": 0.9635,
"strikeout": 1.0146
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668909",
"profile": {
"available": true,
"pitcher_id": "668909",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 593.0,
"k_percent": 32.4,
"bb_percent": 7.7,
"woba": 0.291,
"xwoba": 0.305,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 11.7,
"hard_hit_percent": 47.7,
"avg_best_speed": 79.2423,
"avg_hyper_speed": 95.0535,
"whiff_percent": 31.5,
"swing_percent": 49.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1659,
"command_and_miss": 1.0561,
"regression_edge": -0.4,
"xwoba_edge": 0.1714,
"barrel_edge": -1.0,
"hard_hit_edge": -1.4143,
"whiff_edge": 0.8929,
"bb_edge": 0.375,
"pitch_design_score": 0.0615
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668909",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.94628314658443,
"release_spin_rate": 2281.2769819363643,
"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.9463,
"release_spin_rate": 2281.277,
"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.0615,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4395,
"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.1466,
"sample_weight": 1.0,
"run_prevention_factor": 0.9875,
"strikeout_factor": 1.0951,
"walk_factor": 0.97,
"homer_factor": 1.1314,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "668909",
"espn_id": 4345076,
"player_name": "Gavin Williams",
"team": "CLE",
"role": "pitcher",
"espn_rank": 42,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 42,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 26.0,
"gs_rank": 10,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 3.7241,
"era_rank": 33.0,
"w_value": 12.0,
"w_rank": 12,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 154.2,
"ip_rank": 11,
"h_value": 120.0,
"h_rank": 57,
"er_value": 64.0,
"er_rank": 29,
"hr_value": 25.0,
"hr_rank": 10,
"bb_value": 48.0,
"bb_rank": 30,
"k_value": 201.0,
"k_rank": 3,
"k_per_9_value": 11.696121,
"k_per_9_rank": 7,
"whip_value": 1.0862,
"whip_rank": 13.0,
"war_value": 2.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9875,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9875,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.97,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1314,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0951,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 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/20260825_CLE@LAA.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"
}
} |
| 20260825 | 20260825_CLE@LAA | home | Walbert Ureña | Walbert Ureña | True | 5.2 | 3.2 | -6 | 2 | 3 | 1 | 1/5 | 2/5 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.79585798816568,
"WHIP": 1.242603550295858,
"IP": 112.2,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.286,
"recent_avg_IP": 5.067,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9641,
"strikeout_factor": 1.0186,
"walk_factor": 1.062,
"homer_factor": 0.9222,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 12.3,
"woba": 0.276,
"xwoba": 0.283,
"barrel_percent": 5.3,
"hard_hit_percent": 34.3,
"whiff_percent": 27.7
},
"espn_rank": {
"rank": 37,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 112.2,
"season_ERA": 2.796,
"season_WHIP": 1.243,
"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": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700712",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 8.0,
"R": 8.0,
"H": 14.0,
"BB": 12.0,
"SO": 26.0,
"HR": 2.0,
"BF": 101.0,
"Pitches": 425.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.6,
"H": 2.8,
"BB": 2.4,
"SO": 5.2,
"HR": 0.4,
"BF": 20.2,
"Pitches": 85.0
},
"rates": {
"ERA": 2.8421,
"WHIP": 1.0263,
"ER_per_IP": 0.31579,
"H_per_IP": 0.55263,
"BB_per_IP": 0.47368,
"SO_per_IP": 1.02632,
"HR_per_IP": 0.07895
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 17.0,
"R": 17.0,
"H": 32.0,
"BB": 24.0,
"SO": 51.0,
"HR": 2.0,
"BF": 207.0,
"Pitches": 881.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7,
"R": 1.7,
"H": 3.2,
"BB": 2.4,
"SO": 5.1,
"HR": 0.2,
"BF": 20.7,
"Pitches": 88.1
},
"rates": {
"ERA": 3.0397,
"WHIP": 1.1126,
"ER_per_IP": 0.33775,
"H_per_IP": 0.63576,
"BB_per_IP": 0.47682,
"SO_per_IP": 1.01325,
"HR_per_IP": 0.03974
}
},
"season": {
"games": 23,
"totals": {
"IP": 112.2,
"ER": 35.0,
"R": 42.0,
"H": 81.0,
"BB": 59.0,
"SO": 109.0,
"HR": 7.0,
"BF": 479.0,
"Pitches": 1936.0
},
"per_game": {
"IP": 5.0,
"ER": 1.5217,
"R": 1.8261,
"H": 3.5217,
"BB": 2.5652,
"SO": 4.7391,
"HR": 0.3043,
"BF": 20.8261,
"Pitches": 84.1739
},
"rates": {
"ERA": 2.7959,
"WHIP": 1.2426,
"ER_per_IP": 0.31065,
"H_per_IP": 0.71893,
"BB_per_IP": 0.52367,
"SO_per_IP": 0.96746,
"HR_per_IP": 0.06213
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.815,
"predicted_H": 3.479,
"predicted_BB": 2.374,
"predicted_SO": 5.111,
"predicted_HR": 0.395,
"predicted_ERA": 3.1915,
"predicted_WHIP": 1.1434
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.815,
"final": 1.8937,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.479,
"final": 2.4243,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.374,
"final": 2.2149,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.111,
"final": 5.0638,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.395,
"final": 0.2269,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1915,
"final": 3.1915,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1434,
"final": 1.1434,
"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": 17,
"H": 32,
"BB": 24,
"SO": 51,
"HR": 2,
"ERA": 3.039735099337748,
"WHIP": 1.1125827814569536,
"K9": 9.119205298013245,
"HR9": 0.3576158940397351,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.8403497992991328,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "LAA",
"games": 132,
"wins": 52,
"losses": 80,
"win_pct": 0.3939,
"runs_scored": 539.0,
"runs_allowed": 611.0,
"run_differential": -72.0,
"run_differential_per_game": -0.5455,
"avg_runs_scored": 4.0833,
"avg_runs_allowed": 4.6288,
"offense_index": 0.9129,
"defense_index": 0.9663,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.8,
"run_differential": 11.0
},
"available": true,
"quality_score": -0.1923
},
"opponent": {
"team": "CLE",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 531.0,
"runs_allowed": 538.0,
"run_differential": -7.0,
"run_differential_per_game": -0.053,
"avg_runs_scored": 4.0227,
"avg_runs_allowed": 4.0758,
"offense_index": 0.8994,
"defense_index": 1.0974,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 2.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.0635
},
"edges": {
"quality_edge": -0.2558,
"offense_edge": -0.0871,
"opponent_offense_edge": -0.1006,
"defense_strength": -0.0337,
"opponent_defense_weakness": -0.0974,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0001,
"strikeout": 1.0004
},
"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": 457.0,
"k_percent": 22.8,
"bb_percent": 12.3,
"woba": 0.276,
"xwoba": 0.283,
"sweet_spot_percent": 26.1,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 34.3,
"avg_best_speed": 75.4418,
"avg_hyper_speed": 93.5169,
"whiff_percent": 27.7,
"swing_percent": 45.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.7495,
"command_and_miss": 0.0189,
"regression_edge": -0.2,
"xwoba_edge": 0.8,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.5,
"whiff_edge": 0.35,
"bb_edge": -0.775,
"pitch_design_score": 0.2253
},
"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": 93.87027755344951,
"release_spin_rate": 2096.3407678922704,
"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": 93.87027755344951,
"release_spin_rate": 2096.3407678922704,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.8703,
"release_spin_rate": 2096.3408,
"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.2253,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.6091,
"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.4227,
"sample_weight": 1.0,
"run_prevention_factor": 0.9641,
"strikeout_factor": 1.0186,
"walk_factor": 1.062,
"homer_factor": 0.9222,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "700712",
"espn_id": 5197476,
"player_name": "Walbert Urena",
"team": "LAA",
"role": "pitcher",
"espn_rank": 37,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 37,
"gp_value": 23.0,
"gp_rank": 314,
"gs_value": 21.0,
"gs_rank": 81,
"qs_value": 10.0,
"qs_rank": 49,
"era_value": 2.7958,
"era_rank": null,
"w_value": 8.0,
"w_rank": 46,
"l_value": 9.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 1.0,
"hld_rank": 251,
"ip_value": 112.2,
"ip_rank": 93,
"h_value": 81.0,
"h_rank": 128,
"er_value": 35.0,
"er_rank": 153,
"hr_value": 7.0,
"hr_rank": 210,
"bb_value": 59.0,
"bb_rank": 11,
"k_value": 109.0,
"k_rank": 73,
"k_per_9_value": 8.707101,
"k_per_9_rank": 21,
"whip_value": 1.2426,
"whip_rank": null,
"war_value": 2.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9641,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9641,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.062,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9222,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0186,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"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."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260825_CLE@LAA.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"
}
} |
| 20260825 | 20260825_COL@WAS | away | Mason Adams | Mason Adams | True | 0.1 | 4.0 | 11 | 3 | 1 | -2 | 9/3 | 0/3 | 1/5 | Last 10 before this game (0 available)No pregame recent-game rows were available. {
"model_context": {
"embedded_season": {
"ERA": null,
"WHIP": null,
"IP": null,
"games_started": null,
"games_pitched": null,
"role_avg_IP": null,
"recent_avg_IP": null,
"last_start_IP": null,
"projection_source": "league_average_stable_fallback"
},
"savant": {
"quality_score": null,
"sample_weight": null,
"run_prevention_factor": null,
"strikeout_factor": null,
"walk_factor": null,
"homer_factor": null,
"regression_flag": null,
"k_percent": null,
"bb_percent": null,
"woba": null,
"xwoba": null,
"barrel_percent": null,
"hard_hit_percent": null,
"whiff_percent": null
},
"espn_rank": {
"rank": null,
"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": {},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690279",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 0,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"last_10": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
},
"season": {
"games": 0,
"totals": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"per_game": {
"IP": 0.0,
"ER": 0.0,
"R": 0.0,
"H": 0.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 0.0,
"Pitches": 0.0
},
"rates": {
"ERA": null,
"WHIP": null,
"ER_per_IP": null,
"H_per_IP": null,
"BB_per_IP": null,
"SO_per_IP": null,
"HR_per_IP": null
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.1,
"predicted_ER": 0.168,
"predicted_H": 0.326,
"predicted_BB": 0.122,
"predicted_SO": 0.315,
"predicted_HR": 0.049,
"predicted_ERA": 4.5229,
"predicted_WHIP": 1.3441
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7725,
"form_weight": 0.2275,
"form_reliability": 0.0,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.1,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.168,
"final": 2.3557,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 0.326,
"final": 7.0267,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.122,
"final": 0.0278,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 0.315,
"final": 2.3892,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.049,
"final": 0.7836,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5229,
"final": 4.5229,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3441,
"final": 1.3441,
"source": "form_only"
}
}
},
"recent_form_analysis": null,
"recent_form_boost": null,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 0.1,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0,
"prior_weight": 1.0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690279",
"player_name": "Mason Adams",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 0.1,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 0.1,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.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": 0.1,
"after": 0.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"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": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.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": 0.1,
"after": 0.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"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": 3.0,
"after": 1.0,
"delta": -2.0,
"percent_delta": -0.6667,
"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": 131,
"wins": 50,
"losses": 81,
"win_pct": 0.3817,
"runs_scored": 620.0,
"runs_allowed": 766.0,
"run_differential": -146.0,
"run_differential_per_game": -1.1145,
"avg_runs_scored": 4.7328,
"avg_runs_allowed": 5.8473,
"offense_index": 1.0584,
"defense_index": 0.7647,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 7.3,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.3426
},
"opponent": {
"team": "WAS",
"games": 133,
"wins": 62,
"losses": 71,
"win_pct": 0.4662,
"runs_scored": 695.0,
"runs_allowed": 675.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1504,
"avg_runs_scored": 5.2256,
"avg_runs_allowed": 5.0752,
"offense_index": 1.1686,
"defense_index": 0.8811,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.6,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.1152
},
"edges": {
"quality_edge": -0.2274,
"offense_edge": 0.0584,
"opponent_offense_edge": 0.1686,
"defense_strength": -0.2353,
"opponent_defense_weakness": 0.1189,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9771,
"run_prevention": 1.0619,
"strikeout": 0.9797
}
},
"simulation_box_score_stats": {
"predicted_IP": 0.1,
"predicted_H": 9,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 1,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 10,
"Pitches": 31,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "NO_PRIOR_HISTORY",
"severity": "critical",
"title": "No prior appearances in the source dataset",
"detail": "The model had no row-level pitching history before this game; any precise box-score line should carry a strong uncertainty warning."
},
{
"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 +11 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was -6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260825_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_COL@WAS | home | Andrew Alvarez | Andrew Alvarez | True | 5.0 | 4.2 | -1 | 4 | 3 | -1 | 4/5 | 7/2 | 4/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6,
"WHIP": 1.3375,
"IP": 80.0,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.848,
"recent_avg_IP": 5.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1286,
"sample_weight": 1.0,
"run_prevention_factor": 1.0109,
"strikeout_factor": 1.0049,
"walk_factor": 1.028,
"homer_factor": 1.0042,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 10.6,
"woba": 0.304,
"xwoba": 0.324,
"barrel_percent": 5.3,
"hard_hit_percent": 42.5,
"whiff_percent": 26.3
},
"espn_rank": {
"rank": 103,
"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": "674841",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 7.0,
"R": 7.0,
"H": 16.0,
"BB": 11.0,
"SO": 19.0,
"HR": 2.0,
"BF": 106.0,
"Pitches": 382.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.2,
"BB": 2.2,
"SO": 3.8,
"HR": 0.4,
"BF": 21.2,
"Pitches": 76.4
},
"rates": {
"ERA": 2.3625,
"WHIP": 1.0125,
"ER_per_IP": 0.2625,
"H_per_IP": 0.6,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.7125,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 20.0,
"R": 20.0,
"H": 38.0,
"BB": 24.0,
"SO": 37.0,
"HR": 2.0,
"BF": 202.0,
"Pitches": 755.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0,
"H": 3.8,
"BB": 2.4,
"SO": 3.7,
"HR": 0.2,
"BF": 20.2,
"Pitches": 75.5
},
"rates": {
"ERA": 3.7762,
"WHIP": 1.3007,
"ER_per_IP": 0.41958,
"H_per_IP": 0.7972,
"BB_per_IP": 0.5035,
"SO_per_IP": 0.77622,
"HR_per_IP": 0.04196
}
},
"season": {
"games": 19,
"totals": {
"IP": 80.0,
"ER": 32.0,
"R": 32.0,
"H": 71.0,
"BB": 36.0,
"SO": 74.0,
"HR": 4.0,
"BF": 339.0,
"Pitches": 1311.0
},
"per_game": {
"IP": 4.1,
"ER": 1.6842,
"R": 1.6842,
"H": 3.7368,
"BB": 1.8947,
"SO": 3.8947,
"HR": 0.2105,
"BF": 17.8421,
"Pitches": 69.0
},
"rates": {
"ERA": 3.6,
"WHIP": 1.3375,
"ER_per_IP": 0.4,
"H_per_IP": 0.8875,
"BB_per_IP": 0.45,
"SO_per_IP": 0.925,
"HR_per_IP": 0.05
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.859,
"predicted_H": 3.832,
"predicted_BB": 2.137,
"predicted_SO": 3.997,
"predicted_HR": 0.379,
"predicted_ERA": 3.4002,
"predicted_WHIP": 1.2129
}
},
"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": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.859,
"final": 2.7968,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.832,
"final": 3.9056,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 7.0,
"form": 2.137,
"final": 4.267,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 3.997,
"final": 3.5603,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.379,
"final": 0.213,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4002,
"final": 3.4002,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2129,
"final": 1.2129,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 20,
"H": 38,
"BB": 24,
"SO": 37,
"HR": 2,
"ERA": 3.776223776223776,
"WHIP": 1.3006993006993006,
"K9": 6.986013986013985,
"HR9": 0.3776223776223776,
"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-08-20T00:00:00"
},
"recent_form_boost": 0.9279076884298695,
"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": 7.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 7.0,
"predicted_ER": 4.0,
"predicted_H": 4.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": 7.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 7.0,
"after": 7.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": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 7.0,
"after": 7.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": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 133,
"wins": 62,
"losses": 71,
"win_pct": 0.4662,
"runs_scored": 695.0,
"runs_allowed": 675.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1504,
"avg_runs_scored": 5.2256,
"avg_runs_allowed": 5.0752,
"offense_index": 1.1686,
"defense_index": 0.8811,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.6,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.1152
},
"opponent": {
"team": "COL",
"games": 131,
"wins": 50,
"losses": 81,
"win_pct": 0.3817,
"runs_scored": 620.0,
"runs_allowed": 766.0,
"run_differential": -146.0,
"run_differential_per_game": -1.1145,
"avg_runs_scored": 4.7328,
"avg_runs_allowed": 5.8473,
"offense_index": 1.0584,
"defense_index": 0.7647,
"current_streak": "L7",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 7.3,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.3426
},
"edges": {
"quality_edge": 0.2274,
"offense_edge": 0.1686,
"opponent_offense_edge": 0.0584,
"defense_strength": -0.1189,
"opponent_defense_weakness": 0.2353,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0032,
"run_prevention": 1.0099,
"strikeout": 1.0022
},
"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": 302.0,
"k_percent": 21.8,
"bb_percent": 10.6,
"woba": 0.304,
"xwoba": 0.324,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 42.5,
"avg_best_speed": 78.3467,
"avg_hyper_speed": 94.8073,
"whiff_percent": 26.3,
"swing_percent": 44.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0919,
"command_and_miss": -0.0304,
"regression_edge": -0.5714,
"xwoba_edge": -0.3714,
"barrel_edge": 0.4222,
"hard_hit_edge": -0.6714,
"whiff_edge": 0.15,
"bb_edge": -0.35,
"pitch_design_score": -0.1518
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "674841",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 76,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 76,
"pitch_usage": 0.0,
"release_speed": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"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": 76,
"pitch_usage": 0.0,
"release_speed": 87.13661568408875,
"release_spin_rate": 2504.9833130374473,
"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.1366,
"release_spin_rate": 2504.9833,
"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.1518,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0844,
"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.1286,
"sample_weight": 1.0,
"run_prevention_factor": 1.0109,
"strikeout_factor": 1.0049,
"walk_factor": 1.028,
"homer_factor": 1.0042,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "674841",
"espn_id": 4300668,
"player_name": "Andrew Alvarez",
"team": "WSH",
"role": "pitcher",
"espn_rank": 103,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 103,
"gp_value": 19.0,
"gp_rank": 376,
"gs_value": 11.0,
"gs_rank": 154,
"qs_value": 1.0,
"qs_rank": 173,
"era_value": 3.6,
"era_rank": null,
"w_value": 2.0,
"w_rank": 293,
"l_value": 5.0,
"l_rank": 121,
"sv_value": 1.0,
"sv_rank": 128,
"hld_value": 2.0,
"hld_rank": 221,
"ip_value": 80.0,
"ip_rank": 145,
"h_value": 71.0,
"h_rank": 150,
"er_value": 32.0,
"er_rank": 165,
"hr_value": 4.0,
"hr_rank": 346,
"bb_value": 36.0,
"bb_rank": 88,
"k_value": 74.0,
"k_rank": 146,
"k_per_9_value": 8.325,
"k_per_9_rank": 27,
"whip_value": 1.3375,
"whip_rank": null,
"war_value": 1.56,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0109,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0109,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.028,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0042,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0049,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 7,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 115,
"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 -5."
}
],
"provenance": {
"prediction": "output/games/20260825_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_HOU@NYY | away | Ethan Pecko | Ethan Pecko | True | 3.1 | 4.1 | 3 | 2 | 5 | 3 | 3/5 | 4/4 | 2/1 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 4.909090909090909,
"WHIP": 1.6363636363636365,
"IP": 3.2,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 3.667,
"recent_avg_IP": 3.667,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0342,
"sample_weight": 0.45,
"run_prevention_factor": 0.9971,
"strikeout_factor": 1.0037,
"walk_factor": 0.9991,
"homer_factor": 0.9971,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 9.1,
"woba": 0.308,
"xwoba": 0.307,
"barrel_percent": 7.1,
"hard_hit_percent": 37.6,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 461,
"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": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "814490",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"per_game": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.6364,
"ER_per_IP": 0.54545,
"H_per_IP": 0.81818,
"BB_per_IP": 0.81818,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"per_game": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.6364,
"ER_per_IP": 0.54545,
"H_per_IP": 0.81818,
"BB_per_IP": 0.81818,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
},
"season": {
"games": 1,
"totals": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"per_game": {
"IP": 3.2,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 3.0,
"SO": 4.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 89.0
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.6364,
"ER_per_IP": 0.54545,
"H_per_IP": 0.81818,
"BB_per_IP": 0.81818,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.01,
"predicted_H": 3.749,
"predicted_BB": 1.745,
"predicted_SO": 3.823,
"predicted_HR": 0.485,
"predicted_ERA": 4.5873,
"predicted_WHIP": 1.3928
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7021,
"form_weight": 0.2979,
"form_reliability": 0.1667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.01,
"final": 2.003,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.749,
"final": 3.2232,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.745,
"final": 3.3282,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.823,
"final": 2.5431,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.485,
"final": 0.8466,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5873,
"final": 4.5873,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3928,
"final": 1.3928,
"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": 3.2,
"ER": 2,
"H": 3,
"BB": 3,
"SO": 4,
"HR": 0,
"ERA": 4.909090909090909,
"WHIP": 1.6363636363636365,
"K9": 9.818181818181818,
"HR9": 0.0,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 1,
"error_prone": false
},
"games_count": 1,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.0076315544134151,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 1.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.1667,
"prior_weight": 0.8333
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "814490",
"player_name": "Ethan Pecko",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.1,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.1,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 3.1,
"after": 3.1,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"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": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 596.0,
"runs_allowed": 640.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3359,
"avg_runs_scored": 4.5496,
"avg_runs_allowed": 4.8855,
"offense_index": 1.0174,
"defense_index": 0.9153,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.5,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0795
},
"opponent": {
"team": "NYY",
"games": 130,
"wins": 74,
"losses": 56,
"win_pct": 0.5692,
"runs_scored": 579.0,
"runs_allowed": 479.0,
"run_differential": 100.0,
"run_differential_per_game": 0.7692,
"avg_runs_scored": 4.4538,
"avg_runs_allowed": 3.6846,
"offense_index": 0.996,
"defense_index": 1.2136,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.4,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1884
},
"edges": {
"quality_edge": -0.2679,
"offense_edge": 0.0174,
"opponent_offense_edge": -0.004,
"defense_strength": -0.0847,
"opponent_defense_weakness": -0.2136,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9869,
"run_prevention": 1.0212,
"strikeout": 0.9923
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "814490",
"profile": {
"available": true,
"pitcher_id": "814490",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.9,
"bb_percent": 9.1,
"woba": 0.308,
"xwoba": 0.307,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.8717,
"whiff_percent": 25.8,
"swing_percent": 47.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0888,
"command_and_miss": 0.0904,
"regression_edge": 0.0286,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0286,
"whiff_edge": 0.0786,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "814490",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0342,
"sample_weight": 0.45,
"run_prevention_factor": 0.9971,
"strikeout_factor": 1.0037,
"walk_factor": 0.9991,
"homer_factor": 0.9971,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "814490",
"espn_id": 4944276,
"player_name": "Ethan Pecko",
"team": "HOU",
"role": "pitcher",
"espn_rank": 461,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 461,
"gp_value": 1.0,
"gp_rank": 758,
"gs_value": 1.0,
"gs_rank": 289,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 4.909,
"era_rank": null,
"w_value": 0.0,
"w_rank": 502,
"l_value": 0.0,
"l_rank": 552,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 3.2,
"ip_rank": 715,
"h_value": 3.0,
"h_rank": 744,
"er_value": 2.0,
"er_rank": 709,
"hr_value": 0.0,
"hr_rank": 713,
"bb_value": 3.0,
"bb_rank": 646,
"k_value": 4.0,
"k_rank": 672,
"k_per_9_value": 9.818182,
"k_per_9_rank": 25,
"whip_value": 1.6363,
"whip_rank": null,
"war_value": 0.02,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9987,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9987,
"adjusted": 3
},
"predicted_BB": {
"original": 3.0,
"factor": 0.9996,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9987,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0017,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 18,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 1 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."
}
],
"provenance": {
"prediction": "output/games/20260825_HOU@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_HOU@NYY | home | Will Warren | Will Warren | True | 4.2 | 5.0 | 1 | 0 | 2 | 2 | 4/7 | 1/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.426229508196721,
"WHIP": 1.401639344262295,
"IP": 122.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.056,
"recent_avg_IP": 4.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2799,
"sample_weight": 1.0,
"run_prevention_factor": 1.0238,
"strikeout_factor": 0.9883,
"walk_factor": 0.976,
"homer_factor": 1.0659,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 8.0,
"woba": 0.342,
"xwoba": 0.332,
"barrel_percent": 8.0,
"hard_hit_percent": 43.7,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 352,
"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": "701542",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 16.0,
"R": 16.0,
"H": 26.0,
"BB": 9.0,
"SO": 25.0,
"HR": 5.0,
"BF": 102.0,
"Pitches": 418.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.2,
"H": 5.2,
"BB": 1.8,
"SO": 5.0,
"HR": 1.0,
"BF": 20.4,
"Pitches": 83.6
},
"rates": {
"ERA": 6.2609,
"WHIP": 1.5217,
"ER_per_IP": 0.69565,
"H_per_IP": 1.13043,
"BB_per_IP": 0.3913,
"SO_per_IP": 1.08696,
"HR_per_IP": 0.21739
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 30.0,
"R": 30.0,
"H": 50.0,
"BB": 17.0,
"SO": 38.0,
"HR": 11.0,
"BF": 195.0,
"Pitches": 761.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 5.0,
"BB": 1.7,
"SO": 3.8,
"HR": 1.1,
"BF": 19.5,
"Pitches": 76.1
},
"rates": {
"ERA": 6.1832,
"WHIP": 1.5344,
"ER_per_IP": 0.68702,
"H_per_IP": 1.14504,
"BB_per_IP": 0.38931,
"SO_per_IP": 0.87023,
"HR_per_IP": 0.25191
}
},
"season": {
"games": 25,
"totals": {
"IP": 122.0,
"ER": 60.0,
"R": 72.0,
"H": 128.0,
"BB": 43.0,
"SO": 122.0,
"HR": 19.0,
"BF": 535.0,
"Pitches": 2095.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.88,
"H": 5.12,
"BB": 1.72,
"SO": 4.88,
"HR": 0.76,
"BF": 21.4,
"Pitches": 83.8
},
"rates": {
"ERA": 4.4262,
"WHIP": 1.4016,
"ER_per_IP": 0.4918,
"H_per_IP": 1.04918,
"BB_per_IP": 0.35246,
"SO_per_IP": 1.0,
"HR_per_IP": 0.15574
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.9,
"predicted_H": 5.067,
"predicted_BB": 1.759,
"predicted_SO": 4.558,
"predicted_HR": 0.951,
"predicted_ERA": 5.6427,
"predicted_WHIP": 1.4758
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.9,
"final": 1.6808,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.067,
"final": 4.6184,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.759,
"final": 1.4399,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.558,
"final": 5.1643,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.951,
"final": 0.5512,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6427,
"final": 5.6427,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4758,
"final": 1.4758,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 30,
"H": 50,
"BB": 17,
"SO": 38,
"HR": 11,
"ERA": 6.183206106870229,
"WHIP": 1.534351145038168,
"K9": 7.8320610687022905,
"HR9": 2.267175572519084,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.2045344967360672,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "701542",
"player_name": "Will Warren",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 130,
"wins": 74,
"losses": 56,
"win_pct": 0.5692,
"runs_scored": 579.0,
"runs_allowed": 479.0,
"run_differential": 100.0,
"run_differential_per_game": 0.7692,
"avg_runs_scored": 4.4538,
"avg_runs_allowed": 3.6846,
"offense_index": 0.996,
"defense_index": 1.2136,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.4,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1884
},
"opponent": {
"team": "HOU",
"games": 131,
"wins": 65,
"losses": 66,
"win_pct": 0.4962,
"runs_scored": 596.0,
"runs_allowed": 640.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3359,
"avg_runs_scored": 4.5496,
"avg_runs_allowed": 4.8855,
"offense_index": 1.0174,
"defense_index": 0.9153,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.5,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0795
},
"edges": {
"quality_edge": 0.2679,
"offense_edge": -0.004,
"opponent_offense_edge": 0.0174,
"defense_strength": 0.2136,
"opponent_defense_weakness": 0.0847,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0164,
"run_prevention": 0.968,
"strikeout": 1.0066
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "701542",
"profile": {
"available": true,
"pitcher_id": "701542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 514.0,
"k_percent": 22.8,
"bb_percent": 8.0,
"woba": 0.342,
"xwoba": 0.332,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 43.7,
"avg_best_speed": 80.4541,
"avg_hyper_speed": 95.0645,
"whiff_percent": 22.4,
"swing_percent": 43.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.5407,
"command_and_miss": -0.0311,
"regression_edge": 0.2857,
"xwoba_edge": -0.6,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.8429,
"whiff_edge": -0.4071,
"bb_edge": 0.3,
"pitch_design_score": 0.0292
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "701542",
"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": 90.36851976238309,
"release_spin_rate": 2504.9632519059246,
"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": 90.36851976238309,
"release_spin_rate": 2504.9632519059246,
"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.3685,
"release_spin_rate": 2504.9633,
"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.0292,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2083,
"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.2799,
"sample_weight": 1.0,
"run_prevention_factor": 1.0238,
"strikeout_factor": 0.9883,
"walk_factor": 0.976,
"homer_factor": 1.0659,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "701542",
"espn_id": 5132011,
"player_name": "Will Warren",
"team": "NYY",
"role": "pitcher",
"espn_rank": 352,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 352,
"gp_value": 25.0,
"gp_rank": 270,
"gs_value": 24.0,
"gs_rank": 43,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 4.4262,
"era_rank": null,
"w_value": 8.0,
"w_rank": 46,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 1.0,
"hld_rank": 251,
"ip_value": 122.0,
"ip_rank": 76,
"h_value": 128.0,
"h_rank": 33,
"er_value": 60.0,
"er_rank": 47,
"hr_value": 19.0,
"hr_rank": 28,
"bb_value": 43.0,
"bb_rank": 49,
"k_value": 122.0,
"k_rank": 49,
"k_per_9_value": 9.0,
"k_per_9_rank": 17,
"whip_value": 1.4016,
"whip_rank": null,
"war_value": 0.17,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0238,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0238,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0659,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9883,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260825_HOU@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_KC@TOR | away | Seth Lugo | Seth Lugo | True | 5.2 | 5.0 | -2 | 2 | 1 | -1 | 4/6 | 0/1 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.706422018348624,
"WHIP": 1.3830275229357798,
"IP": 145.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.59,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5579,
"sample_weight": 1.0,
"run_prevention_factor": 1.0474,
"strikeout_factor": 0.9374,
"walk_factor": 0.964,
"homer_factor": 1.0724,
"regression_flag": "neutral",
"k_percent": 17.9,
"bb_percent": 7.4,
"woba": 0.342,
"xwoba": 0.347,
"barrel_percent": 7.9,
"hard_hit_percent": 42.9,
"whiff_percent": 18.4
},
"espn_rank": {
"rank": 361,
"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": "607625",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 19.0,
"R": 19.0,
"H": 32.0,
"BB": 8.0,
"SO": 17.0,
"HR": 1.0,
"BF": 120.0,
"Pitches": 455.0
},
"per_game": {
"IP": 5.2,
"ER": 3.8,
"R": 3.8,
"H": 6.4,
"BB": 1.6,
"SO": 3.4,
"HR": 0.2,
"BF": 24.0,
"Pitches": 91.0
},
"rates": {
"ERA": 6.1807,
"WHIP": 1.4458,
"ER_per_IP": 0.68675,
"H_per_IP": 1.15663,
"BB_per_IP": 0.28916,
"SO_per_IP": 0.61446,
"HR_per_IP": 0.03614
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 34.0,
"R": 38.0,
"H": 61.0,
"BB": 16.0,
"SO": 42.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.8,
"H": 6.1,
"BB": 1.6,
"SO": 4.2,
"HR": 0.6,
"BF": 23.8,
"Pitches": 90.7
},
"rates": {
"ERA": 5.5636,
"WHIP": 1.4,
"ER_per_IP": 0.61818,
"H_per_IP": 1.10909,
"BB_per_IP": 0.29091,
"SO_per_IP": 0.76364,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 26,
"totals": {
"IP": 145.1,
"ER": 76.0,
"R": 84.0,
"H": 155.0,
"BB": 46.0,
"SO": 111.0,
"HR": 16.0,
"BF": 619.0,
"Pitches": 2338.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9231,
"R": 3.2308,
"H": 5.9615,
"BB": 1.7692,
"SO": 4.2692,
"HR": 0.6154,
"BF": 23.8077,
"Pitches": 89.9231
},
"rates": {
"ERA": 4.7064,
"WHIP": 1.383,
"ER_per_IP": 0.52294,
"H_per_IP": 1.06651,
"BB_per_IP": 0.31651,
"SO_per_IP": 0.76376,
"HR_per_IP": 0.11009
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.394,
"predicted_H": 6.118,
"predicted_BB": 1.709,
"predicted_SO": 4.102,
"predicted_HR": 0.49,
"predicted_ERA": 5.4848,
"predicted_WHIP": 1.4054
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.394,
"final": 2.8111,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 6.118,
"final": 5.2324,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.709,
"final": 0.9944,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.102,
"final": 4.4775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.49,
"final": 0.2851,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4848,
"final": 5.4848,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4054,
"final": 1.4054,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.0,
"ER": 34,
"H": 61,
"BB": 16,
"SO": 42,
"HR": 6,
"ERA": 5.563636363636363,
"WHIP": 1.4,
"K9": 6.872727272727272,
"HR9": 0.9818181818181817,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.1314741219963032,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607625",
"player_name": "Seth Lugo",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 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": "KC",
"games": 132,
"wins": 58,
"losses": 74,
"win_pct": 0.4394,
"runs_scored": 560.0,
"runs_allowed": 651.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6894,
"avg_runs_scored": 4.2424,
"avg_runs_allowed": 4.9318,
"offense_index": 0.9487,
"defense_index": 0.9067,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.0037
},
"opponent": {
"team": "TOR",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 521.0,
"runs_allowed": 576.0,
"run_differential": -55.0,
"run_differential_per_game": -0.4167,
"avg_runs_scored": 3.947,
"avg_runs_allowed": 4.3636,
"offense_index": 0.8827,
"defense_index": 1.0248,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0642
},
"edges": {
"quality_edge": 0.0679,
"offense_edge": -0.0513,
"opponent_offense_edge": -0.1173,
"defense_strength": -0.0933,
"opponent_defense_weakness": -0.0248,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0046,
"run_prevention": 0.9872,
"strikeout": 1.0114
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607625",
"profile": {
"available": true,
"pitcher_id": "607625",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 588.0,
"k_percent": 17.9,
"bb_percent": 7.4,
"woba": 0.342,
"xwoba": 0.347,
"sweet_spot_percent": 36.9,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 42.9,
"avg_best_speed": 79.4351,
"avg_hyper_speed": 94.6374,
"whiff_percent": 18.4,
"swing_percent": 46.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.6977,
"command_and_miss": -0.5161,
"regression_edge": -0.1429,
"xwoba_edge": -1.0286,
"barrel_edge": -0.1556,
"hard_hit_edge": -0.7286,
"whiff_edge": -0.9786,
"bb_edge": 0.45,
"pitch_design_score": -0.2342
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607625",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 85.66495773113361,
"release_spin_rate": 2512.8015132364526,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 85.66495773113361,
"release_spin_rate": 2512.8015132364526,
"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.665,
"release_spin_rate": 2512.8015,
"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.2342,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6731,
"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.5579,
"sample_weight": 1.0,
"run_prevention_factor": 1.0474,
"strikeout_factor": 0.9374,
"walk_factor": 0.964,
"homer_factor": 1.0724,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607625",
"espn_id": 34873,
"player_name": "Seth Lugo",
"team": "KC",
"role": "pitcher",
"espn_rank": 361,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 361,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 26.0,
"gs_rank": 10,
"qs_value": 14.0,
"qs_rank": 14,
"era_value": 4.7064,
"era_rank": 51.0,
"w_value": 5.0,
"w_rank": 120,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 145.1,
"ip_rank": 23,
"h_value": 155.0,
"h_rank": 5,
"er_value": 76.0,
"er_rank": 7,
"hr_value": 16.0,
"hr_rank": 64,
"bb_value": 46.0,
"bb_rank": 36,
"k_value": 111.0,
"k_rank": 68,
"k_per_9_value": 6.8738537,
"k_per_9_rank": 79,
"whip_value": 1.383,
"whip_rank": 49.0,
"war_value": 0.15,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0474,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0474,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.964,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0724,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9374,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260825_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_KC@TOR | home | Max Scherzer | Max Scherzer | True | 4.1 | 5.0 | 2 | 4 | 2 | -2 | 6/4 | 1/5 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 7.4,
"WHIP": 1.511111111111111,
"IP": 45.0,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 4.091,
"recent_avg_IP": 4.6,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2798,
"sample_weight": 0.724,
"run_prevention_factor": 1.0238,
"strikeout_factor": 0.9439,
"walk_factor": 1.0101,
"homer_factor": 1.0182,
"regression_flag": "positive_pitcher_regression",
"k_percent": 15.8,
"bb_percent": 9.9,
"woba": 0.368,
"xwoba": 0.332,
"barrel_percent": 9.4,
"hard_hit_percent": 32.2,
"whiff_percent": 17.9
},
"espn_rank": {
"rank": 802,
"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": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 12.0,
"R": 12.0,
"H": 21.0,
"BB": 9.0,
"SO": 18.0,
"HR": 3.0,
"BF": 100.0,
"Pitches": 408.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4,
"R": 2.4,
"H": 4.2,
"BB": 1.8,
"SO": 3.6,
"HR": 0.6,
"BF": 20.0,
"Pitches": 81.6
},
"rates": {
"ERA": 4.6957,
"WHIP": 1.3043,
"ER_per_IP": 0.52174,
"H_per_IP": 0.91304,
"BB_per_IP": 0.3913,
"SO_per_IP": 0.78261,
"HR_per_IP": 0.13043
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.0,
"ER": 36.0,
"R": 36.0,
"H": 44.0,
"BB": 19.0,
"SO": 28.0,
"HR": 11.0,
"BF": 180.0,
"Pitches": 750.0
},
"per_game": {
"IP": 4.0,
"ER": 3.6,
"R": 3.6,
"H": 4.4,
"BB": 1.9,
"SO": 2.8,
"HR": 1.1,
"BF": 18.0,
"Pitches": 75.0
},
"rates": {
"ERA": 8.3077,
"WHIP": 1.6154,
"ER_per_IP": 0.92308,
"H_per_IP": 1.12821,
"BB_per_IP": 0.48718,
"SO_per_IP": 0.71795,
"HR_per_IP": 0.28205
}
},
"season": {
"games": 11,
"totals": {
"IP": 45.0,
"ER": 37.0,
"R": 37.0,
"H": 48.0,
"BB": 20.0,
"SO": 32.0,
"HR": 12.0,
"BF": 202.0,
"Pitches": 833.0
},
"per_game": {
"IP": 4.0,
"ER": 3.3636,
"R": 3.3636,
"H": 4.3636,
"BB": 1.8182,
"SO": 2.9091,
"HR": 1.0909,
"BF": 18.3636,
"Pitches": 75.7273
},
"rates": {
"ERA": 7.4,
"WHIP": 1.5111,
"ER_per_IP": 0.82222,
"H_per_IP": 1.06667,
"BB_per_IP": 0.44444,
"SO_per_IP": 0.71111,
"HR_per_IP": 0.26667
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.817,
"predicted_H": 4.336,
"predicted_BB": 1.785,
"predicted_SO": 3.483,
"predicted_HR": 0.823,
"predicted_ERA": 5.8827,
"predicted_WHIP": 1.42
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.482,
"form_weight": 0.518,
"form_reliability": 0.6875,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.817,
"final": 3.3872,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.336,
"final": 5.1381,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.785,
"final": 1.4066,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.483,
"final": 4.6963,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.823,
"final": 0.4263,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8827,
"final": 5.8827,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.42,
"final": 1.42,
"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": 39.0,
"ER": 36,
"H": 44,
"BB": 19,
"SO": 28,
"HR": 11,
"ERA": 8.307692307692308,
"WHIP": 1.6153846153846154,
"K9": 6.461538461538462,
"HR9": 2.5384615384615383,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.420086766283624,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_IP": 4.1,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 521.0,
"runs_allowed": 576.0,
"run_differential": -55.0,
"run_differential_per_game": -0.4167,
"avg_runs_scored": 3.947,
"avg_runs_allowed": 4.3636,
"offense_index": 0.8827,
"defense_index": 1.0248,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.0,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.0642
},
"opponent": {
"team": "KC",
"games": 132,
"wins": 58,
"losses": 74,
"win_pct": 0.4394,
"runs_scored": 560.0,
"runs_allowed": 651.0,
"run_differential": -91.0,
"run_differential_per_game": -0.6894,
"avg_runs_scored": 4.2424,
"avg_runs_allowed": 4.9318,
"offense_index": 0.9487,
"defense_index": 0.9067,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 3.4,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.0037
},
"edges": {
"quality_edge": -0.0679,
"offense_edge": -0.1173,
"opponent_offense_edge": -0.0513,
"defense_strength": 0.0248,
"opponent_defense_weakness": 0.0933,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 1.0001,
"run_prevention": 0.9927,
"strikeout": 1.0021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 181.0,
"k_percent": 15.8,
"bb_percent": 9.9,
"woba": 0.368,
"xwoba": 0.332,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 32.2,
"avg_best_speed": 76.1864,
"avg_hyper_speed": 93.1175,
"whiff_percent": 17.9,
"swing_percent": 51.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4847,
"command_and_miss": -0.8011,
"regression_edge": 1.0286,
"xwoba_edge": -0.6,
"barrel_edge": -0.4889,
"hard_hit_edge": 0.8,
"whiff_edge": -1.05,
"bb_edge": -0.175,
"pitch_design_score": -0.1205
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.69537803907868,
"release_spin_rate": 2258.706878850472,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.69537803907868,
"release_spin_rate": 2258.706878850472,
"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.6954,
"release_spin_rate": 2258.7069,
"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.1205,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8609,
"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.2798,
"sample_weight": 0.724,
"run_prevention_factor": 1.0238,
"strikeout_factor": 0.9439,
"walk_factor": 1.0101,
"homer_factor": 1.0182,
"woba_minus_xwoba": 0.036,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "453286",
"espn_id": 28976,
"player_name": "Max Scherzer",
"team": "TOR",
"role": "pitcher",
"espn_rank": 802,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 802,
"gp_value": 11.0,
"gp_rank": 488,
"gs_value": 11.0,
"gs_rank": 154,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 7.4,
"era_rank": null,
"w_value": 1.0,
"w_rank": 386,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 45.0,
"ip_rank": 302,
"h_value": 48.0,
"h_rank": 227,
"er_value": 37.0,
"er_rank": 144,
"hr_value": 12.0,
"hr_rank": 119,
"bb_value": 20.0,
"bb_rank": 260,
"k_value": 32.0,
"k_rank": 380,
"k_per_9_value": 6.4,
"k_per_9_rank": 33,
"whip_value": 1.5111,
"whip_rank": null,
"war_value": -0.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0172,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0172,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0073,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0132,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9594,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260825_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_LAD@ATL | away | Tyler Glasnow | Tyler Glasnow | True | 5.2 | 5.0 | -2 | 2 | 3 | 1 | 2/6 | 0/0 | 6/7 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 2.722689075630252,
"WHIP": 0.8319327731092437,
"IP": 39.2,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.533,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4139,
"sample_weight": 0.572,
"run_prevention_factor": 0.9648,
"strikeout_factor": 1.0512,
"walk_factor": 0.9954,
"homer_factor": 0.9822,
"regression_flag": "neutral",
"k_percent": 33.1,
"bb_percent": 8.8,
"woba": 0.235,
"xwoba": 0.252,
"barrel_percent": 8.1,
"hard_hit_percent": 38.4,
"whiff_percent": 29.8
},
"espn_rank": {
"rank": 123,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.7627118644067797,
"last_10": 0.23728813559322032
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 10.0,
"SO": 34.0,
"HR": 5.0,
"BF": 101.0,
"Pitches": 408.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 2.4,
"BB": 2.0,
"SO": 6.8,
"HR": 1.0,
"BF": 20.2,
"Pitches": 81.6
},
"rates": {
"ERA": 2.6024,
"WHIP": 0.7952,
"ER_per_IP": 0.28916,
"H_per_IP": 0.43373,
"BB_per_IP": 0.36145,
"SO_per_IP": 1.22892,
"HR_per_IP": 0.18072
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 39.2,
"ER": 12.0,
"R": 12.0,
"H": 20.0,
"BB": 13.0,
"SO": 49.0,
"HR": 5.0,
"BF": 148.0,
"Pitches": 599.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7143,
"R": 1.7143,
"H": 2.8571,
"BB": 1.8571,
"SO": 7.0,
"HR": 0.7143,
"BF": 21.1429,
"Pitches": 85.5714
},
"rates": {
"ERA": 2.7227,
"WHIP": 0.8319,
"ER_per_IP": 0.30252,
"H_per_IP": 0.5042,
"BB_per_IP": 0.32773,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.12605
}
},
"season": {
"games": 7,
"totals": {
"IP": 39.2,
"ER": 12.0,
"R": 12.0,
"H": 20.0,
"BB": 13.0,
"SO": 49.0,
"HR": 5.0,
"BF": 148.0,
"Pitches": 599.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7143,
"R": 1.7143,
"H": 2.8571,
"BB": 1.8571,
"SO": 7.0,
"HR": 0.7143,
"BF": 21.1429,
"Pitches": 85.5714
},
"rates": {
"ERA": 2.7227,
"WHIP": 0.8319,
"ER_per_IP": 0.30252,
"H_per_IP": 0.5042,
"BB_per_IP": 0.32773,
"SO_per_IP": 1.23529,
"HR_per_IP": 0.12605
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.153,
"predicted_H": 3.795,
"predicted_BB": 2.036,
"predicted_SO": 6.298,
"predicted_HR": 0.903,
"predicted_ERA": 3.4193,
"predicted_WHIP": 1.029
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.153,
"final": 2.0725,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.795,
"final": 2.8507,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.036,
"final": 0.965,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.298,
"final": 5.0891,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.903,
"final": 0.428,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4193,
"final": 3.4193,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.029,
"final": 1.029,
"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": 39.2,
"ER": 12,
"H": 20,
"BB": 13,
"SO": 49,
"HR": 5,
"ERA": 2.7226890756302518,
"WHIP": 0.8319327731092436,
"K9": 11.117647058823527,
"HR9": 1.134453781512605,
"games_pitched": 7,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-05-06T00:00:00"
},
"recent_form_boost": 0.7976658714233467,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
}
},
{
"step": "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": 2,
"predicted_BB": 0,
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.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": 4.0,
"after": 6.0,
"delta": 2.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": {}
},
{
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.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": 4.0,
"after": 6.0,
"delta": 2.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": "LAD",
"games": 131,
"wins": 80,
"losses": 51,
"win_pct": 0.6107,
"runs_scored": 653.0,
"runs_allowed": 502.0,
"run_differential": 151.0,
"run_differential_per_game": 1.1527,
"avg_runs_scored": 4.9847,
"avg_runs_allowed": 3.8321,
"offense_index": 1.1147,
"defense_index": 1.1669,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.3059
},
"opponent": {
"team": "ATL",
"games": 131,
"wins": 76,
"losses": 55,
"win_pct": 0.5802,
"runs_scored": 614.0,
"runs_allowed": 504.0,
"run_differential": 110.0,
"run_differential_per_game": 0.8397,
"avg_runs_scored": 4.687,
"avg_runs_allowed": 3.8473,
"offense_index": 1.0482,
"defense_index": 1.1623,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.3,
"avg_runs_allowed": 3.7,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.1015
},
"edges": {
"quality_edge": 0.2044,
"offense_edge": 0.1147,
"opponent_offense_edge": 0.0482,
"defense_strength": 0.1669,
"opponent_defense_weakness": -0.1623,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0113,
"run_prevention": 0.9808,
"strikeout": 1.0023
},
"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": 143.0,
"k_percent": 33.1,
"bb_percent": 8.8,
"woba": 0.235,
"xwoba": 0.252,
"sweet_spot_percent": 30.2,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.4,
"avg_best_speed": 81.8224,
"avg_hyper_speed": 93.8526,
"whiff_percent": 29.8,
"swing_percent": 43.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.9295,
"command_and_miss": 0.9611,
"regression_edge": -0.4857,
"xwoba_edge": 1.6857,
"barrel_edge": -0.2,
"hard_hit_edge": -0.0857,
"whiff_edge": 0.65,
"bb_edge": 0.1,
"pitch_design_score": 0.0224
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 99,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 90.24801416590935,
"release_spin_rate": 2625.2769823048557,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 99,
"pitch_usage": 0.0,
"release_speed": 90.24801416590935,
"release_spin_rate": 2625.2769823048557,
"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.248,
"release_spin_rate": 2625.277,
"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.0224,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1601,
"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.4139,
"sample_weight": 0.572,
"run_prevention_factor": 0.9648,
"strikeout_factor": 1.0512,
"walk_factor": 0.9954,
"homer_factor": 0.9822,
"woba_minus_xwoba": -0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607192",
"espn_id": 33190,
"player_name": "Tyler Glasnow",
"team": "LAD",
"role": "pitcher",
"espn_rank": 123,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 123,
"gp_value": 7.0,
"gp_rank": 561,
"gs_value": 7.0,
"gs_rank": 192,
"qs_value": 4.0,
"qs_rank": 117,
"era_value": 2.7226,
"era_rank": null,
"w_value": 3.0,
"w_rank": 224,
"l_value": 0.0,
"l_rank": 552,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 39.2,
"ip_rank": 346,
"h_value": 20.0,
"h_rank": 485,
"er_value": 12.0,
"er_rank": 441,
"hr_value": 5.0,
"hr_rank": 288,
"bb_value": 13.0,
"bb_rank": 389,
"k_value": 49.0,
"k_rank": 265,
"k_per_9_value": 11.117647,
"k_per_9_rank": 20,
"whip_value": 0.8319,
"whip_rank": null,
"war_value": 1.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9799,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9799,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9898,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0293,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 7 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260825_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_LAD@ATL | home | Bryce Elder | Bryce Elder | True | 5.2 | 6.0 | 1 | 4 | 3 | -1 | 7/8 | 4/0 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9225181598062955,
"WHIP": 1.234866828087167,
"IP": 137.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.736,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0918,
"sample_weight": 1.0,
"run_prevention_factor": 1.0078,
"strikeout_factor": 0.9649,
"walk_factor": 0.974,
"homer_factor": 1.0038,
"regression_flag": "neutral",
"k_percent": 19.5,
"bb_percent": 7.9,
"woba": 0.307,
"xwoba": 0.31,
"barrel_percent": 6.5,
"hard_hit_percent": 40.8,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 120,
"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": "693821",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 11.0,
"R": 12.0,
"H": 23.0,
"BB": 13.0,
"SO": 23.0,
"HR": 5.0,
"BF": 122.0,
"Pitches": 455.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.4,
"H": 4.6,
"BB": 2.6,
"SO": 4.6,
"HR": 1.0,
"BF": 24.4,
"Pitches": 91.0
},
"rates": {
"ERA": 3.4138,
"WHIP": 1.2414,
"ER_per_IP": 0.37931,
"H_per_IP": 0.7931,
"BB_per_IP": 0.44828,
"SO_per_IP": 0.7931,
"HR_per_IP": 0.17241
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.0,
"ER": 35.0,
"R": 37.0,
"H": 60.0,
"BB": 21.0,
"SO": 42.0,
"HR": 15.0,
"BF": 237.0,
"Pitches": 840.0
},
"per_game": {
"IP": 5.1,
"ER": 3.5,
"R": 3.7,
"H": 6.0,
"BB": 2.1,
"SO": 4.2,
"HR": 1.5,
"BF": 23.7,
"Pitches": 84.0
},
"rates": {
"ERA": 5.9434,
"WHIP": 1.5283,
"ER_per_IP": 0.66038,
"H_per_IP": 1.13208,
"BB_per_IP": 0.39623,
"SO_per_IP": 0.79245,
"HR_per_IP": 0.28302
}
},
"season": {
"games": 24,
"totals": {
"IP": 137.2,
"ER": 60.0,
"R": 66.0,
"H": 124.0,
"BB": 46.0,
"SO": 113.0,
"HR": 22.0,
"BF": 579.0,
"Pitches": 2063.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.75,
"H": 5.1667,
"BB": 1.9167,
"SO": 4.7083,
"HR": 0.9167,
"BF": 24.125,
"Pitches": 85.9583
},
"rates": {
"ERA": 3.9225,
"WHIP": 1.2349,
"ER_per_IP": 0.43584,
"H_per_IP": 0.90073,
"BB_per_IP": 0.33414,
"SO_per_IP": 0.82082,
"HR_per_IP": 0.15981
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.737,
"predicted_H": 5.24,
"predicted_BB": 2.23,
"predicted_SO": 4.588,
"predicted_HR": 1.103,
"predicted_ERA": 4.4219,
"predicted_WHIP": 1.3411
}
},
"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": 4.0,
"form": 2.737,
"final": 3.271,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.24,
"final": 5.9842,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.23,
"final": 2.9784,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.588,
"final": 3.9165,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.103,
"final": 1.0594,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4219,
"final": 4.4219,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3411,
"final": 1.3411,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.0,
"ER": 35,
"H": 60,
"BB": 21,
"SO": 42,
"HR": 15,
"ERA": 5.943396226415095,
"WHIP": 1.528301886792453,
"K9": 7.132075471698113,
"HR9": 2.547169811320755,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-16T00:00:00"
},
"recent_form_boost": 1.1774046537287217,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693821",
"player_name": "Bryce Elder",
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": "ATL",
"games": 131,
"wins": 76,
"losses": 55,
"win_pct": 0.5802,
"runs_scored": 614.0,
"runs_allowed": 504.0,
"run_differential": 110.0,
"run_differential_per_game": 0.8397,
"avg_runs_scored": 4.687,
"avg_runs_allowed": 3.8473,
"offense_index": 1.0482,
"defense_index": 1.1623,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.3,
"avg_runs_allowed": 3.7,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.1015
},
"opponent": {
"team": "LAD",
"games": 131,
"wins": 80,
"losses": 51,
"win_pct": 0.6107,
"runs_scored": 653.0,
"runs_allowed": 502.0,
"run_differential": 151.0,
"run_differential_per_game": 1.1527,
"avg_runs_scored": 4.9847,
"avg_runs_allowed": 3.8321,
"offense_index": 1.1147,
"defense_index": 1.1669,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.8,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.3059
},
"edges": {
"quality_edge": -0.2044,
"offense_edge": 0.0482,
"opponent_offense_edge": 0.1147,
"defense_strength": 0.1623,
"opponent_defense_weakness": -0.1669,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9921,
"run_prevention": 1.0123,
"strikeout": 0.9847
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693821",
"profile": {
"available": true,
"pitcher_id": "693821",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 554.0,
"k_percent": 19.5,
"bb_percent": 7.9,
"woba": 0.307,
"xwoba": 0.31,
"sweet_spot_percent": 32.4,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 40.8,
"avg_best_speed": 80.1908,
"avg_hyper_speed": 94.3747,
"whiff_percent": 21.6,
"swing_percent": 46.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.0092,
"command_and_miss": -0.2782,
"regression_edge": -0.0857,
"xwoba_edge": 0.0286,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.5214,
"bb_edge": 0.325,
"pitch_design_score": -0.0724
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693821",
"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": 88.55423108441673,
"release_spin_rate": 2159.7667053455843,
"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": 88.55423108441673,
"release_spin_rate": 2159.7667053455843,
"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.5542,
"release_spin_rate": 2159.7667,
"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.0724,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5174,
"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.0918,
"sample_weight": 1.0,
"run_prevention_factor": 1.0078,
"strikeout_factor": 0.9649,
"walk_factor": 0.974,
"homer_factor": 1.0038,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693821",
"espn_id": 4301067,
"player_name": "Bryce Elder",
"team": "ATL",
"role": "pitcher",
"espn_rank": 120,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 120,
"gp_value": 24.0,
"gp_rank": 295,
"gs_value": 24.0,
"gs_rank": 43,
"qs_value": 14.0,
"qs_rank": 14,
"era_value": 3.9225,
"era_rank": 37.0,
"w_value": 8.0,
"w_rank": 46,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 137.2,
"ip_rank": 41,
"h_value": 124.0,
"h_rank": 47,
"er_value": 60.0,
"er_rank": 47,
"hr_value": 22.0,
"hr_rank": 16,
"bb_value": 46.0,
"bb_rank": 36,
"k_value": 113.0,
"k_rank": 65,
"k_per_9_value": 7.387409,
"k_per_9_rank": 42,
"whip_value": 1.2348,
"whip_rank": 38.0,
"war_value": 1.35,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0078,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0078,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0038,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9649,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 28,
"Pitches": 120,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "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/20260825_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_MIL@NYM | away | Kyle Harrison | Kyle Harrison | True | 5.1 | 5.0 | -1 | 2 | 1 | -1 | 5/6 | 3/1 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8372881355932207,
"WHIP": 1.1084745762711865,
"IP": 98.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.267,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5401,
"sample_weight": 1.0,
"run_prevention_factor": 0.9541,
"strikeout_factor": 1.0694,
"walk_factor": 0.946,
"homer_factor": 0.9503,
"regression_flag": "neutral",
"k_percent": 30.3,
"bb_percent": 6.5,
"woba": 0.29,
"xwoba": 0.276,
"barrel_percent": 6.8,
"hard_hit_percent": 35.6,
"whiff_percent": 29.1
},
"espn_rank": {
"rank": 50,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 98.1,
"season_ERA": 2.837,
"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": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "690986",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 9.0,
"R": 14.0,
"H": 22.0,
"BB": 7.0,
"SO": 26.0,
"HR": 4.0,
"BF": 93.0,
"Pitches": 380.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.8,
"H": 4.4,
"BB": 1.4,
"SO": 5.2,
"HR": 0.8,
"BF": 18.6,
"Pitches": 76.0
},
"rates": {
"ERA": 3.7969,
"WHIP": 1.3594,
"ER_per_IP": 0.42188,
"H_per_IP": 1.03125,
"BB_per_IP": 0.32812,
"SO_per_IP": 1.21875,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.2,
"ER": 22.0,
"R": 27.0,
"H": 44.0,
"BB": 12.0,
"SO": 61.0,
"HR": 10.0,
"BF": 196.0,
"Pitches": 814.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.7,
"H": 4.4,
"BB": 1.2,
"SO": 6.1,
"HR": 1.0,
"BF": 19.6,
"Pitches": 81.4
},
"rates": {
"ERA": 4.2429,
"WHIP": 1.2,
"ER_per_IP": 0.47143,
"H_per_IP": 0.94286,
"BB_per_IP": 0.25714,
"SO_per_IP": 1.30714,
"HR_per_IP": 0.21429
}
},
"season": {
"games": 20,
"totals": {
"IP": 98.1,
"ER": 31.0,
"R": 36.0,
"H": 83.0,
"BB": 26.0,
"SO": 122.0,
"HR": 13.0,
"BF": 402.0,
"Pitches": 1695.0
},
"per_game": {
"IP": 5.0,
"ER": 1.55,
"R": 1.8,
"H": 4.15,
"BB": 1.3,
"SO": 6.1,
"HR": 0.65,
"BF": 20.1,
"Pitches": 84.75
},
"rates": {
"ERA": 2.8373,
"WHIP": 1.1085,
"ER_per_IP": 0.31525,
"H_per_IP": 0.84407,
"BB_per_IP": 0.26441,
"SO_per_IP": 1.24068,
"HR_per_IP": 0.1322
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.087,
"predicted_H": 4.635,
"predicted_BB": 1.468,
"predicted_SO": 5.723,
"predicted_HR": 0.855,
"predicted_ERA": 3.9134,
"predicted_WHIP": 1.2716
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.2,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.087,
"final": 2.0492,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.635,
"final": 4.7936,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.468,
"final": 2.1337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.723,
"final": 5.8434,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.855,
"final": 0.4835,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9134,
"final": 3.9134,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2716,
"final": 1.2716,
"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": 46.2,
"ER": 22,
"H": 44,
"BB": 12,
"SO": 61,
"HR": 10,
"ERA": 4.242857142857142,
"WHIP": 1.2,
"K9": 11.764285714285712,
"HR9": 1.9285714285714284,
"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-08-18T00:00:00"
},
"recent_form_boost": 0.9778864596586406,
"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": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 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.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690986",
"player_name": "Kyle Harrison",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "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.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 5.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": 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.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"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": "MIL",
"games": 131,
"wins": 81,
"losses": 50,
"win_pct": 0.6183,
"runs_scored": 650.0,
"runs_allowed": 489.0,
"run_differential": 161.0,
"run_differential_per_game": 1.229,
"avg_runs_scored": 4.9618,
"avg_runs_allowed": 3.7328,
"offense_index": 1.1096,
"defense_index": 1.1979,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 2.7,
"run_differential": 31.0
},
"available": true,
"quality_score": 0.3217
},
"opponent": {
"team": "NYM",
"games": 131,
"wins": 59,
"losses": 72,
"win_pct": 0.4504,
"runs_scored": 546.0,
"runs_allowed": 586.0,
"run_differential": -40.0,
"run_differential_per_game": -0.3053,
"avg_runs_scored": 4.1679,
"avg_runs_allowed": 4.4733,
"offense_index": 0.9321,
"defense_index": 0.9996,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.5,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0447
},
"edges": {
"quality_edge": 0.3664,
"offense_edge": 0.1096,
"opponent_offense_edge": -0.0679,
"defense_strength": 0.1979,
"opponent_defense_weakness": 0.0004,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0233,
"run_prevention": 0.951,
"strikeout": 1.0164
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690986",
"profile": {
"available": true,
"pitcher_id": "690986",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 361.0,
"k_percent": 30.3,
"bb_percent": 6.5,
"woba": 0.29,
"xwoba": 0.276,
"sweet_spot_percent": 36.4,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 35.6,
"avg_best_speed": 78.942,
"avg_hyper_speed": 93.7825,
"whiff_percent": 29.1,
"swing_percent": 48.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4922,
"command_and_miss": 0.8611,
"regression_edge": 0.4,
"xwoba_edge": 1.0,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.55,
"bb_edge": 0.675,
"pitch_design_score": 0.0077
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690986",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 89.98577717440415,
"release_spin_rate": 2195.9811603582148,
"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": 78,
"pitch_usage": 0.0,
"release_speed": 89.98577717440415,
"release_spin_rate": 2195.9811603582148,
"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.9858,
"release_spin_rate": 2195.9812,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0077,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0553,
"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.5401,
"sample_weight": 1.0,
"run_prevention_factor": 0.9541,
"strikeout_factor": 1.0694,
"walk_factor": 0.946,
"homer_factor": 0.9503,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690986",
"espn_id": 4683375,
"player_name": "Kyle Harrison",
"team": "MIL",
"role": "pitcher",
"espn_rank": 50,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 50,
"gp_value": 20.0,
"gp_rank": 361,
"gs_value": 20.0,
"gs_rank": 87,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 2.8372,
"era_rank": null,
"w_value": 10.0,
"w_rank": 23,
"l_value": 3.0,
"l_rank": 217,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 98.1,
"ip_rank": 107,
"h_value": 83.0,
"h_rank": 123,
"er_value": 31.0,
"er_rank": 171,
"hr_value": 13.0,
"hr_rank": 104,
"bb_value": 26.0,
"bb_rank": 180,
"k_value": 122.0,
"k_rank": 49,
"k_per_9_value": 11.166101,
"k_per_9_rank": 12,
"whip_value": 1.1084,
"whip_rank": null,
"war_value": 2.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9541,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9541,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9503,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0694,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 105,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260825_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_MIL@NYM | home | Zac Thornton | Zac Thornton | True | 6.0 | 6.0 | 0 | 1 | 1 | 0 | 1/7 | 3/0 | 5/4 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 3.039735099337748,
"WHIP": 1.1324503311258278,
"IP": 50.1,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 5.593,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.285,
"sample_weight": 0.628,
"run_prevention_factor": 1.0242,
"strikeout_factor": 0.9654,
"walk_factor": 0.9724,
"homer_factor": 1.0497,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.0,
"bb_percent": 7.0,
"woba": 0.294,
"xwoba": 0.337,
"barrel_percent": 9.4,
"hard_hit_percent": 40.9,
"whiff_percent": 19.6
},
"espn_rank": {
"rank": 126,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 50.1,
"season_ERA": 3.04,
"season_WHIP": 1.132,
"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.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804267",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 12.0,
"R": 13.0,
"H": 29.0,
"BB": 8.0,
"SO": 19.0,
"HR": 5.0,
"BF": 113.0,
"Pitches": 417.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.6,
"H": 5.8,
"BB": 1.6,
"SO": 3.8,
"HR": 1.0,
"BF": 22.6,
"Pitches": 83.4
},
"rates": {
"ERA": 4.0,
"WHIP": 1.3704,
"ER_per_IP": 0.44444,
"H_per_IP": 1.07407,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.7037,
"HR_per_IP": 0.18519
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 50.1,
"ER": 17.0,
"R": 18.0,
"H": 43.0,
"BB": 14.0,
"SO": 36.0,
"HR": 6.0,
"BF": 200.0,
"Pitches": 738.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8889,
"R": 2.0,
"H": 4.7778,
"BB": 1.5556,
"SO": 4.0,
"HR": 0.6667,
"BF": 22.2222,
"Pitches": 82.0
},
"rates": {
"ERA": 3.0397,
"WHIP": 1.1325,
"ER_per_IP": 0.33775,
"H_per_IP": 0.8543,
"BB_per_IP": 0.27815,
"SO_per_IP": 0.71523,
"HR_per_IP": 0.11921
}
},
"season": {
"games": 9,
"totals": {
"IP": 50.1,
"ER": 17.0,
"R": 18.0,
"H": 43.0,
"BB": 14.0,
"SO": 36.0,
"HR": 6.0,
"BF": 200.0,
"Pitches": 738.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8889,
"R": 2.0,
"H": 4.7778,
"BB": 1.5556,
"SO": 4.0,
"HR": 0.6667,
"BF": 22.2222,
"Pitches": 82.0
},
"rates": {
"ERA": 3.0397,
"WHIP": 1.1325,
"ER_per_IP": 0.33775,
"H_per_IP": 0.8543,
"BB_per_IP": 0.27815,
"SO_per_IP": 0.71523,
"HR_per_IP": 0.11921
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.481,
"predicted_H": 5.57,
"predicted_BB": 1.793,
"predicted_SO": 4.482,
"predicted_HR": 0.879,
"predicted_ERA": 3.9499,
"predicted_WHIP": 1.3023
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.481,
"final": 1.7392,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 5.57,
"final": 3.281,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.793,
"final": 2.3976,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.482,
"final": 4.7415,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.879,
"final": 0.4387,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9499,
"final": 3.9499,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3023,
"final": 1.3023,
"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": 17,
"H": 43,
"BB": 14,
"SO": 36,
"HR": 6,
"ERA": 3.039735099337748,
"WHIP": 1.1324503311258278,
"K9": 6.437086092715232,
"HR9": 1.0728476821192052,
"games_pitched": 9,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 0.8408464880408546,
"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": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "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": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 131,
"wins": 59,
"losses": 72,
"win_pct": 0.4504,
"runs_scored": 546.0,
"runs_allowed": 586.0,
"run_differential": -40.0,
"run_differential_per_game": -0.3053,
"avg_runs_scored": 4.1679,
"avg_runs_allowed": 4.4733,
"offense_index": 0.9321,
"defense_index": 0.9996,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.5,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0447
},
"opponent": {
"team": "MIL",
"games": 131,
"wins": 81,
"losses": 50,
"win_pct": 0.6183,
"runs_scored": 650.0,
"runs_allowed": 489.0,
"run_differential": 161.0,
"run_differential_per_game": 1.229,
"avg_runs_scored": 4.9618,
"avg_runs_allowed": 3.7328,
"offense_index": 1.1096,
"defense_index": 1.1979,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 2.7,
"run_differential": 31.0
},
"available": true,
"quality_score": 0.3217
},
"edges": {
"quality_edge": -0.3664,
"offense_edge": -0.0679,
"opponent_offense_edge": 0.1096,
"defense_strength": -0.0004,
"opponent_defense_weakness": -0.1979,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9809,
"run_prevention": 1.0359,
"strikeout": 0.9802
},
"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": 157.0,
"k_percent": 18.0,
"bb_percent": 7.0,
"woba": 0.294,
"xwoba": 0.337,
"sweet_spot_percent": 38.3,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 40.9,
"avg_best_speed": 77.9622,
"avg_hyper_speed": 94.5697,
"whiff_percent": 19.6,
"swing_percent": 51.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.373,
"command_and_miss": -0.4296,
"regression_edge": -1.2286,
"xwoba_edge": -0.7429,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.4429,
"whiff_edge": -0.8071,
"bb_edge": 0.55,
"pitch_design_score": -0.129
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"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": 87.54344880092886,
"release_spin_rate": 2359.7079229005235,
"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": 87.54344880092886,
"release_spin_rate": 2359.7079229005235,
"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.5434,
"release_spin_rate": 2359.7079,
"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.129,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9217,
"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.285,
"sample_weight": 0.628,
"run_prevention_factor": 1.0242,
"strikeout_factor": 0.9654,
"walk_factor": 0.9724,
"homer_factor": 1.0497,
"woba_minus_xwoba": -0.043,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "804267",
"espn_id": 5129576,
"player_name": "Zac Thornton",
"team": "NYM",
"role": "pitcher",
"espn_rank": 126,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 126,
"gp_value": 9.0,
"gp_rank": 515,
"gs_value": 9.0,
"gs_rank": 172,
"qs_value": 5.0,
"qs_rank": 100,
"era_value": 3.0397,
"era_rank": null,
"w_value": 3.0,
"w_rank": 224,
"l_value": 4.0,
"l_rank": 161,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 50.1,
"ip_rank": 269,
"h_value": 44.0,
"h_rank": 257,
"er_value": 17.0,
"er_rank": 338,
"hr_value": 6.0,
"hr_rank": 250,
"bb_value": 14.0,
"bb_rank": 370,
"k_value": 36.0,
"k_rank": 354,
"k_per_9_value": 6.437086,
"k_per_9_rank": 35,
"whip_value": 1.1523,
"whip_rank": null,
"war_value": 1.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0152,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0152,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9827,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0312,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9783,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260825_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_MIN@OAK | away | Taj Bradley | Taj Bradley | True | 5.1 | 6.2 | 4 | 2 | 4 | 2 | 2/7 | 2/1 | 5/11 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.902843601895735,
"WHIP": 1.2796208530805688,
"IP": 140.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.627,
"recent_avg_IP": 5.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0371,
"sample_weight": 1.0,
"run_prevention_factor": 1.0032,
"strikeout_factor": 1.0294,
"walk_factor": 1.024,
"homer_factor": 1.0745,
"regression_flag": "neutral",
"k_percent": 26.4,
"bb_percent": 10.4,
"woba": 0.303,
"xwoba": 0.307,
"barrel_percent": 9.3,
"hard_hit_percent": 44.9,
"whiff_percent": 26.0
},
"espn_rank": {
"rank": 25,
"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": "671737",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 14.0,
"R": 14.0,
"H": 24.0,
"BB": 16.0,
"SO": 29.0,
"HR": 2.0,
"BF": 118.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 4.8,
"BB": 3.2,
"SO": 5.8,
"HR": 0.4,
"BF": 23.6,
"Pitches": 94.0
},
"rates": {
"ERA": 4.8462,
"WHIP": 1.5385,
"ER_per_IP": 0.53846,
"H_per_IP": 0.92308,
"BB_per_IP": 0.61538,
"SO_per_IP": 1.11538,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 24.0,
"R": 24.0,
"H": 46.0,
"BB": 27.0,
"SO": 67.0,
"HR": 7.0,
"BF": 241.0,
"Pitches": 970.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 4.6,
"BB": 2.7,
"SO": 6.7,
"HR": 0.7,
"BF": 24.1,
"Pitches": 97.0
},
"rates": {
"ERA": 3.7895,
"WHIP": 1.2807,
"ER_per_IP": 0.42105,
"H_per_IP": 0.80702,
"BB_per_IP": 0.47368,
"SO_per_IP": 1.17544,
"HR_per_IP": 0.12281
}
},
"season": {
"games": 25,
"totals": {
"IP": 140.2,
"ER": 61.0,
"R": 61.0,
"H": 118.0,
"BB": 62.0,
"SO": 158.0,
"HR": 19.0,
"BF": 599.0,
"Pitches": 2418.0
},
"per_game": {
"IP": 5.2,
"ER": 2.44,
"R": 2.44,
"H": 4.72,
"BB": 2.48,
"SO": 6.32,
"HR": 0.76,
"BF": 23.96,
"Pitches": 96.72
},
"rates": {
"ERA": 3.9028,
"WHIP": 1.2796,
"ER_per_IP": 0.43365,
"H_per_IP": 0.83886,
"BB_per_IP": 0.44076,
"SO_per_IP": 1.12322,
"HR_per_IP": 0.13507
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.638,
"predicted_H": 4.851,
"predicted_BB": 2.763,
"predicted_SO": 6.067,
"predicted_HR": 0.613,
"predicted_ERA": 4.3269,
"predicted_WHIP": 1.3878
}
},
"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": 2.0,
"form": 2.638,
"final": 2.3698,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.851,
"final": 3.6524,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.763,
"final": 2.4422,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.067,
"final": 5.6184,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.613,
"final": 0.3553,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3269,
"final": 4.3269,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3878,
"final": 1.3878,
"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": 46,
"BB": 27,
"SO": 67,
"HR": 7,
"ERA": 3.789473684210526,
"WHIP": 1.280701754385965,
"K9": 10.578947368421053,
"HR9": 1.105263157894737,
"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-08-19T00:00:00"
},
"recent_form_boost": 0.9288983644205455,
"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": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 5.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": "671737",
"player_name": "Taj Bradley",
"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": 2.0,
"predicted_ER": 2.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 609.0,
"runs_allowed": 660.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3864,
"avg_runs_scored": 4.6136,
"avg_runs_allowed": 5.0,
"offense_index": 1.0315,
"defense_index": 0.8945,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.7,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.0954
},
"opponent": {
"team": "OAK",
"games": 132,
"wins": 51,
"losses": 81,
"win_pct": 0.3864,
"runs_scored": 574.0,
"runs_allowed": 764.0,
"run_differential": -190.0,
"run_differential_per_game": -1.4394,
"avg_runs_scored": 4.3485,
"avg_runs_allowed": 5.7879,
"offense_index": 0.9722,
"defense_index": 0.7728,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.7,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.3436
},
"edges": {
"quality_edge": 0.2482,
"offense_edge": 0.0315,
"opponent_offense_edge": -0.0278,
"defense_strength": -0.1055,
"opponent_defense_weakness": 0.2272,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0079,
"run_prevention": 0.9937,
"strikeout": 1.0097
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671737",
"profile": {
"available": true,
"pitcher_id": "671737",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 578.0,
"k_percent": 26.4,
"bb_percent": 10.4,
"woba": 0.303,
"xwoba": 0.307,
"sweet_spot_percent": 38.3,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 44.9,
"avg_best_speed": 80.8393,
"avg_hyper_speed": 94.8475,
"whiff_percent": 26.0,
"swing_percent": 47.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1906,
"command_and_miss": 0.2604,
"regression_edge": -0.1143,
"xwoba_edge": 0.1143,
"barrel_edge": -0.4667,
"hard_hit_edge": -1.0143,
"whiff_edge": 0.1071,
"bb_edge": -0.3,
"pitch_design_score": 0.1676
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671737",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 92.84063282193854,
"release_spin_rate": 2176.0954490135146,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 92.84063282193854,
"release_spin_rate": 2176.0954490135146,
"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.8406,
"release_spin_rate": 2176.0954,
"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.1676,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1972,
"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.0371,
"sample_weight": 1.0,
"run_prevention_factor": 1.0032,
"strikeout_factor": 1.0294,
"walk_factor": 1.024,
"homer_factor": 1.0745,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671737",
"espn_id": 42480,
"player_name": "Taj Bradley",
"team": "MIN",
"role": "pitcher",
"espn_rank": 25,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 25,
"gp_value": 25.0,
"gp_rank": 270,
"gs_value": 25.0,
"gs_rank": 30,
"qs_value": 11.0,
"qs_rank": 37,
"era_value": 3.9028,
"era_rank": 36.0,
"w_value": 9.0,
"w_rank": 29,
"l_value": 5.0,
"l_rank": 121,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 140.2,
"ip_rank": 33,
"h_value": 118.0,
"h_rank": 61,
"er_value": 61.0,
"er_rank": 41,
"hr_value": 19.0,
"hr_rank": 28,
"bb_value": 62.0,
"bb_rank": 8,
"k_value": 158.0,
"k_rank": 16,
"k_per_9_value": 10.109004,
"k_per_9_rank": 13,
"whip_value": 1.2796,
"whip_rank": 42.0,
"war_value": 3.06,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0032,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0032,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.024,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0745,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0294,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260825_MIN@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"
}
} |
| 20260825 | 20260825_MIN@OAK | home | Gage Jump | Gage Jump | True | 4.2 | 6.1 | 5 | 4 | 2 | -2 | 6/3 | 0/2 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.829268292682927,
"WHIP": 1.5121951219512195,
"IP": 82.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.125,
"recent_avg_IP": 5.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1207,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 1.01,
"walk_factor": 1.038,
"homer_factor": 0.9976,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 11.1,
"woba": 0.34,
"xwoba": 0.325,
"barrel_percent": 6.1,
"hard_hit_percent": 38.7,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 149,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695611",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 16.0,
"R": 16.0,
"H": 24.0,
"BB": 19.0,
"SO": 27.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 4.8,
"BB": 3.8,
"SO": 5.4,
"HR": 0.4,
"BF": 23.2,
"Pitches": 93.0
},
"rates": {
"ERA": 5.76,
"WHIP": 1.72,
"ER_per_IP": 0.64,
"H_per_IP": 0.96,
"BB_per_IP": 0.76,
"SO_per_IP": 1.08,
"HR_per_IP": 0.08
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.2,
"ER": 36.0,
"R": 38.0,
"H": 60.0,
"BB": 30.0,
"SO": 53.0,
"HR": 9.0,
"BF": 225.0,
"Pitches": 897.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.8,
"H": 6.0,
"BB": 3.0,
"SO": 5.3,
"HR": 0.9,
"BF": 22.5,
"Pitches": 89.7
},
"rates": {
"ERA": 6.9429,
"WHIP": 1.9286,
"ER_per_IP": 0.77143,
"H_per_IP": 1.28571,
"BB_per_IP": 0.64286,
"SO_per_IP": 1.13571,
"HR_per_IP": 0.19286
}
},
"season": {
"games": 16,
"totals": {
"IP": 82.0,
"ER": 44.0,
"R": 46.0,
"H": 84.0,
"BB": 40.0,
"SO": 88.0,
"HR": 9.0,
"BF": 361.0,
"Pitches": 1445.0
},
"per_game": {
"IP": 5.0,
"ER": 2.75,
"R": 2.875,
"H": 5.25,
"BB": 2.5,
"SO": 5.5,
"HR": 0.5625,
"BF": 22.5625,
"Pitches": 90.3125
},
"rates": {
"ERA": 4.8293,
"WHIP": 1.5122,
"ER_per_IP": 0.53659,
"H_per_IP": 1.02439,
"BB_per_IP": 0.4878,
"SO_per_IP": 1.07317,
"HR_per_IP": 0.10976
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.077,
"predicted_H": 5.209,
"predicted_BB": 2.916,
"predicted_SO": 5.214,
"predicted_HR": 0.642,
"predicted_ERA": 5.6391,
"predicted_WHIP": 1.6545
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.077,
"final": 2.5917,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.209,
"final": 3.763,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.916,
"final": 1.6021,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.214,
"final": 5.1176,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.642,
"final": 0.3527,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.6391,
"final": 5.6391,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6545,
"final": 1.6545,
"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": 46.2,
"ER": 36,
"H": 60,
"BB": 30,
"SO": 53,
"HR": 9,
"ERA": 6.942857142857143,
"WHIP": 1.9285714285714286,
"K9": 10.221428571428572,
"HR9": 1.7357142857142858,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 1.2998507453729264,
"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": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 0.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": "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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 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": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 132,
"wins": 51,
"losses": 81,
"win_pct": 0.3864,
"runs_scored": 574.0,
"runs_allowed": 764.0,
"run_differential": -190.0,
"run_differential_per_game": -1.4394,
"avg_runs_scored": 4.3485,
"avg_runs_allowed": 5.7879,
"offense_index": 0.9722,
"defense_index": 0.7728,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.7,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.3436
},
"opponent": {
"team": "MIN",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 609.0,
"runs_allowed": 660.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3864,
"avg_runs_scored": 4.6136,
"avg_runs_allowed": 5.0,
"offense_index": 1.0315,
"defense_index": 0.8945,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.7,
"run_differential": -19.0
},
"available": true,
"quality_score": -0.0954
},
"edges": {
"quality_edge": -0.2482,
"offense_edge": -0.0278,
"opponent_offense_edge": 0.0315,
"defense_strength": -0.2272,
"opponent_defense_weakness": 0.1055,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.982,
"run_prevention": 1.0402,
"strikeout": 0.99
},
"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": 337.0,
"k_percent": 24.4,
"bb_percent": 11.1,
"woba": 0.34,
"xwoba": 0.325,
"sweet_spot_percent": 38.7,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 38.7,
"avg_best_speed": 78.3723,
"avg_hyper_speed": 94.2998,
"whiff_percent": 24.6,
"swing_percent": 47.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3144,
"command_and_miss": 0.0268,
"regression_edge": 0.4286,
"xwoba_edge": -0.4,
"barrel_edge": 0.2444,
"hard_hit_edge": -0.1286,
"whiff_edge": -0.0929,
"bb_edge": -0.475,
"pitch_design_score": 0.0696
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695611",
"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": 91.08991637091822,
"release_spin_rate": 2304.151617914787,
"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": 91.08991637091822,
"release_spin_rate": 2304.151617914787,
"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.0899,
"release_spin_rate": 2304.1516,
"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.0696,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4969,
"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.1207,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 1.01,
"walk_factor": 1.038,
"homer_factor": 0.9976,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695611",
"espn_id": 5023852,
"player_name": "Gage Jump",
"team": "ATH",
"role": "pitcher",
"espn_rank": 149,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 149,
"gp_value": 16.0,
"gp_rank": 418,
"gs_value": 16.0,
"gs_rank": 116,
"qs_value": 5.0,
"qs_rank": 100,
"era_value": 4.8292,
"era_rank": null,
"w_value": 5.0,
"w_rank": 120,
"l_value": 8.0,
"l_rank": 37,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 82.0,
"ip_rank": 140,
"h_value": 84.0,
"h_rank": 120,
"er_value": 44.0,
"er_rank": 114,
"hr_value": 9.0,
"hr_rank": 163,
"bb_value": 40.0,
"bb_rank": 70,
"k_value": 88.0,
"k_rank": 111,
"k_per_9_value": 9.658537,
"k_per_9_rank": 21,
"whip_value": 1.5121,
"whip_rank": null,
"war_value": 1.12,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0103,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0103,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.038,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9976,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.01,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "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/20260825_MIN@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"
}
} |
| 20260825 | 20260825_PHI@SEA | away | Aaron Nola | Aaron Nola | True | 5.1 | 6.0 | 2 | 3 | 2 | -1 | 4/3 | 2/3 | 3/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.124087591240876,
"WHIP": 1.416058394160584,
"IP": 137.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.269,
"recent_avg_IP": 5.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0031,
"sample_weight": 1.0,
"run_prevention_factor": 1.0003,
"strikeout_factor": 1.0311,
"walk_factor": 0.972,
"homer_factor": 1.0683,
"regression_flag": "positive_pitcher_regression",
"k_percent": 24.6,
"bb_percent": 7.8,
"woba": 0.357,
"xwoba": 0.315,
"barrel_percent": 9.5,
"hard_hit_percent": 42.0,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 98,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "605400",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 8.0,
"R": 8.0,
"H": 27.0,
"BB": 10.0,
"SO": 34.0,
"HR": 6.0,
"BF": 118.0,
"Pitches": 484.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 5.4,
"BB": 2.0,
"SO": 6.8,
"HR": 1.2,
"BF": 23.6,
"Pitches": 96.8
},
"rates": {
"ERA": 2.5116,
"WHIP": 1.2907,
"ER_per_IP": 0.27907,
"H_per_IP": 0.94186,
"BB_per_IP": 0.34884,
"SO_per_IP": 1.18605,
"HR_per_IP": 0.2093
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 28.0,
"R": 29.0,
"H": 58.0,
"BB": 19.0,
"SO": 64.0,
"HR": 14.0,
"BF": 239.0,
"Pitches": 934.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.9,
"H": 5.8,
"BB": 1.9,
"SO": 6.4,
"HR": 1.4,
"BF": 23.9,
"Pitches": 93.4
},
"rates": {
"ERA": 4.4734,
"WHIP": 1.3669,
"ER_per_IP": 0.49704,
"H_per_IP": 1.02959,
"BB_per_IP": 0.33728,
"SO_per_IP": 1.13609,
"HR_per_IP": 0.24852
}
},
"season": {
"games": 26,
"totals": {
"IP": 137.0,
"ER": 78.0,
"R": 80.0,
"H": 148.0,
"BB": 46.0,
"SO": 146.0,
"HR": 31.0,
"BF": 593.0,
"Pitches": 2366.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.0769,
"H": 5.6923,
"BB": 1.7692,
"SO": 5.6154,
"HR": 1.1923,
"BF": 22.8077,
"Pitches": 91.0
},
"rates": {
"ERA": 5.1241,
"WHIP": 1.4161,
"ER_per_IP": 0.56934,
"H_per_IP": 1.08029,
"BB_per_IP": 0.33577,
"SO_per_IP": 1.06569,
"HR_per_IP": 0.22628
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.4,
"predicted_H": 5.591,
"predicted_BB": 1.943,
"predicted_SO": 6.241,
"predicted_HR": 1.199,
"predicted_ERA": 3.8501,
"predicted_WHIP": 1.3427
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.4,
"final": 2.6509,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.591,
"final": 4.9257,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.943,
"final": 1.9668,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.241,
"final": 4.8858,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.199,
"final": 1.1158,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8501,
"final": 3.8501,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3427,
"final": 1.3427,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 28,
"H": 58,
"BB": 19,
"SO": 64,
"HR": 14,
"ERA": 4.4733727810650885,
"WHIP": 1.3668639053254437,
"K9": 10.224852071005916,
"HR9": 2.2366863905325443,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.0079910665901708,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 3.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
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605400",
"player_name": "Aaron Nola",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"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.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"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.6667,
"after": 5.1,
"delta": -0.5667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 132,
"wins": 73,
"losses": 59,
"win_pct": 0.553,
"runs_scored": 601.0,
"runs_allowed": 581.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1515,
"avg_runs_scored": 4.553,
"avg_runs_allowed": 4.4015,
"offense_index": 1.018,
"defense_index": 1.0162,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 3.9,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.2037
},
"opponent": {
"team": "SEA",
"games": 132,
"wins": 63,
"losses": 69,
"win_pct": 0.4773,
"runs_scored": 522.0,
"runs_allowed": 576.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4091,
"avg_runs_scored": 3.9545,
"avg_runs_allowed": 4.3636,
"offense_index": 0.8842,
"defense_index": 1.025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 8.1,
"run_differential": -28.0
},
"available": true,
"quality_score": -0.0346
},
"edges": {
"quality_edge": 0.2383,
"offense_edge": 0.018,
"opponent_offense_edge": -0.1158,
"defense_strength": 0.0162,
"opponent_defense_weakness": -0.025,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0147,
"run_prevention": 0.9679,
"strikeout": 1.0164
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605400",
"profile": {
"available": true,
"pitcher_id": "605400",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 24.6,
"bb_percent": 7.8,
"woba": 0.357,
"xwoba": 0.315,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 42.0,
"avg_best_speed": 77.1595,
"avg_hyper_speed": 94.5064,
"whiff_percent": 28.1,
"swing_percent": 46.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.3647,
"command_and_miss": 0.3796,
"regression_edge": 1.2,
"xwoba_edge": -0.1143,
"barrel_edge": -0.5111,
"hard_hit_edge": -0.6,
"whiff_edge": 0.4071,
"bb_edge": 0.35,
"pitch_design_score": -0.2193
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605400",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.93139033941883,
"release_spin_rate": 2291.4834260359225,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.93139033941883,
"release_spin_rate": 2291.4834260359225,
"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.9314,
"release_spin_rate": 2291.4834,
"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.2193,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5665,
"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.0031,
"sample_weight": 1.0,
"run_prevention_factor": 1.0003,
"strikeout_factor": 1.0311,
"walk_factor": 0.972,
"homer_factor": 1.0683,
"woba_minus_xwoba": 0.042,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605400",
"espn_id": 33709,
"player_name": "Aaron Nola",
"team": "PHI",
"role": "pitcher",
"espn_rank": 98,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 98,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 26.0,
"gs_rank": 10,
"qs_value": 8.0,
"qs_rank": 68,
"era_value": 5.124,
"era_rank": 52.0,
"w_value": 5.0,
"w_rank": 120,
"l_value": 9.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 137.0,
"ip_rank": 44,
"h_value": 148.0,
"h_rank": 9,
"er_value": 78.0,
"er_rank": 6,
"hr_value": 31.0,
"hr_rank": 1,
"bb_value": 46.0,
"bb_rank": 36,
"k_value": 146.0,
"k_rank": 22,
"k_per_9_value": 9.591241,
"k_per_9_rank": 13,
"whip_value": 1.416,
"whip_rank": 52.0,
"war_value": 1.61,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0003,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0003,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.972,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0683,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0311,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260825_PHI@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_PHI@SEA | home | George Kirby | George Kirby | True | 5.1 | 7.2 | 7 | 5 | 1 | -4 | 5/6 | 1/1 | 4/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.178571428571429,
"WHIP": 1.3571428571428572,
"IP": 140.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.833,
"recent_avg_IP": 4.8,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0359,
"sample_weight": 1.0,
"run_prevention_factor": 1.0031,
"strikeout_factor": 0.9671,
"walk_factor": 0.928,
"homer_factor": 1.0192,
"regression_flag": "neutral",
"k_percent": 19.9,
"bb_percent": 5.6,
"woba": 0.337,
"xwoba": 0.309,
"barrel_percent": 6.9,
"hard_hit_percent": 42.4,
"whiff_percent": 21.6
},
"espn_rank": {
"rank": 133,
"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": "669923",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 19.0,
"R": 19.0,
"H": 33.0,
"BB": 8.0,
"SO": 13.0,
"HR": 6.0,
"BF": 110.0,
"Pitches": 442.0
},
"per_game": {
"IP": 4.2,
"ER": 3.8,
"R": 3.8,
"H": 6.6,
"BB": 1.6,
"SO": 2.6,
"HR": 1.2,
"BF": 22.0,
"Pitches": 88.4
},
"rates": {
"ERA": 7.125,
"WHIP": 1.7083,
"ER_per_IP": 0.79167,
"H_per_IP": 1.375,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.54167,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.0,
"ER": 27.0,
"R": 28.0,
"H": 68.0,
"BB": 12.0,
"SO": 43.0,
"HR": 9.0,
"BF": 237.0,
"Pitches": 891.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7,
"R": 2.8,
"H": 6.8,
"BB": 1.2,
"SO": 4.3,
"HR": 0.9,
"BF": 23.7,
"Pitches": 89.1
},
"rates": {
"ERA": 4.3393,
"WHIP": 1.4286,
"ER_per_IP": 0.48214,
"H_per_IP": 1.21429,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.76786,
"HR_per_IP": 0.16071
}
},
"season": {
"games": 24,
"totals": {
"IP": 140.0,
"ER": 65.0,
"R": 69.0,
"H": 157.0,
"BB": 33.0,
"SO": 117.0,
"HR": 17.0,
"BF": 587.0,
"Pitches": 2190.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7083,
"R": 2.875,
"H": 6.5417,
"BB": 1.375,
"SO": 4.875,
"HR": 0.7083,
"BF": 24.4583,
"Pitches": 91.25
},
"rates": {
"ERA": 4.1786,
"WHIP": 1.3571,
"ER_per_IP": 0.46429,
"H_per_IP": 1.12143,
"BB_per_IP": 0.23571,
"SO_per_IP": 0.83571,
"HR_per_IP": 0.12143
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.164,
"predicted_H": 6.445,
"predicted_BB": 1.527,
"predicted_SO": 3.839,
"predicted_HR": 0.98,
"predicted_ERA": 5.3818,
"predicted_WHIP": 1.5064
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 3.164,
"final": 3.9403,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.445,
"final": 5.834,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.527,
"final": 1.3042,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.839,
"final": 3.9071,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.98,
"final": 0.9885,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3818,
"final": 5.3818,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5064,
"final": 1.5064,
"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": 27,
"H": 68,
"BB": 12,
"SO": 43,
"HR": 9,
"ERA": 4.339285714285714,
"WHIP": 1.4285714285714286,
"K9": 6.910714285714286,
"HR9": 1.4464285714285714,
"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-08-20T00:00:00"
},
"recent_form_boost": 0.9944489596586408,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669923",
"player_name": "George Kirby",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 132,
"wins": 63,
"losses": 69,
"win_pct": 0.4773,
"runs_scored": 522.0,
"runs_allowed": 576.0,
"run_differential": -54.0,
"run_differential_per_game": -0.4091,
"avg_runs_scored": 3.9545,
"avg_runs_allowed": 4.3636,
"offense_index": 0.8842,
"defense_index": 1.025,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 8.1,
"run_differential": -28.0
},
"available": true,
"quality_score": -0.0346
},
"opponent": {
"team": "PHI",
"games": 132,
"wins": 73,
"losses": 59,
"win_pct": 0.553,
"runs_scored": 601.0,
"runs_allowed": 581.0,
"run_differential": 20.0,
"run_differential_per_game": 0.1515,
"avg_runs_scored": 4.553,
"avg_runs_allowed": 4.4015,
"offense_index": 1.018,
"defense_index": 1.0162,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 6.6,
"avg_runs_allowed": 3.9,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.2037
},
"edges": {
"quality_edge": -0.2383,
"offense_edge": -0.1158,
"opponent_offense_edge": 0.018,
"defense_strength": 0.025,
"opponent_defense_weakness": -0.0162,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9905,
"run_prevention": 1.0123,
"strikeout": 0.9914
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669923",
"profile": {
"available": true,
"pitcher_id": "669923",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 564.0,
"k_percent": 19.9,
"bb_percent": 5.6,
"woba": 0.337,
"xwoba": 0.309,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 42.4,
"avg_best_speed": 79.5255,
"avg_hyper_speed": 94.3261,
"whiff_percent": 21.6,
"swing_percent": 52.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.16,
"command_and_miss": -0.1375,
"regression_edge": 0.8,
"xwoba_edge": 0.0571,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.6571,
"whiff_edge": -0.5214,
"bb_edge": 0.9,
"pitch_design_score": 0.1178
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669923",
"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": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"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": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"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.9518,
"release_spin_rate": 2266.892,
"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.1178,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8417,
"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.0359,
"sample_weight": 1.0,
"run_prevention_factor": 1.0031,
"strikeout_factor": 0.9671,
"walk_factor": 0.928,
"homer_factor": 1.0192,
"woba_minus_xwoba": 0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669923",
"espn_id": 42406,
"player_name": "George Kirby",
"team": "SEA",
"role": "pitcher",
"espn_rank": 133,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 133,
"gp_value": 24.0,
"gp_rank": 295,
"gs_value": 24.0,
"gs_rank": 43,
"qs_value": 13.0,
"qs_rank": 19,
"era_value": 4.1785,
"era_rank": 45.0,
"w_value": 8.0,
"w_rank": 46,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 140.0,
"ip_rank": 35,
"h_value": 157.0,
"h_rank": 4,
"er_value": 65.0,
"er_rank": 26,
"hr_value": 17.0,
"hr_rank": 51,
"bb_value": 33.0,
"bb_rank": 116,
"k_value": 117.0,
"k_rank": 56,
"k_per_9_value": 7.5214286,
"k_per_9_rank": 43,
"whip_value": 1.3571,
"whip_rank": 47.0,
"war_value": 1.24,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0031,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 1.0031,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.928,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0192,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9671,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 98,
"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 +7 outs from the projected workload."
},
{
"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/20260825_PHI@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_PIT@SD | away | Paul Skenes | Paul Skenes | True | 5.1 | 6.0 | 2 | 4 | 0 | -4 | 5/3 | 0/0 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.949640287769784,
"WHIP": 1.143884892086331,
"IP": 139.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.346,
"recent_avg_IP": 4.733,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5165,
"sample_weight": 1.0,
"run_prevention_factor": 0.9561,
"strikeout_factor": 1.0631,
"walk_factor": 0.96,
"homer_factor": 0.9813,
"regression_flag": "neutral",
"k_percent": 29.8,
"bb_percent": 7.2,
"woba": 0.295,
"xwoba": 0.277,
"barrel_percent": 7.4,
"hard_hit_percent": 39.0,
"whiff_percent": 28.5
},
"espn_rank": {
"rank": 66,
"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": "694973",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 17.0,
"R": 18.0,
"H": 24.0,
"BB": 15.0,
"SO": 33.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 444.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 3.6,
"H": 4.8,
"BB": 3.0,
"SO": 6.6,
"HR": 0.6,
"BF": 21.6,
"Pitches": 88.8
},
"rates": {
"ERA": 6.4648,
"WHIP": 1.6479,
"ER_per_IP": 0.71831,
"H_per_IP": 1.01408,
"BB_per_IP": 0.6338,
"SO_per_IP": 1.39437,
"HR_per_IP": 0.12676
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 33.0,
"R": 35.0,
"H": 54.0,
"BB": 23.0,
"SO": 64.0,
"HR": 5.0,
"BF": 223.0,
"Pitches": 898.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3,
"R": 3.5,
"H": 5.4,
"BB": 2.3,
"SO": 6.4,
"HR": 0.5,
"BF": 22.3,
"Pitches": 89.8
},
"rates": {
"ERA": 5.8235,
"WHIP": 1.5098,
"ER_per_IP": 0.64706,
"H_per_IP": 1.05882,
"BB_per_IP": 0.45098,
"SO_per_IP": 1.2549,
"HR_per_IP": 0.09804
}
},
"season": {
"games": 26,
"totals": {
"IP": 139.0,
"ER": 61.0,
"R": 69.0,
"H": 118.0,
"BB": 41.0,
"SO": 171.0,
"HR": 14.0,
"BF": 573.0,
"Pitches": 2354.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3462,
"R": 2.6538,
"H": 4.5385,
"BB": 1.5769,
"SO": 6.5769,
"HR": 0.5385,
"BF": 22.0385,
"Pitches": 90.5385
},
"rates": {
"ERA": 3.9496,
"WHIP": 1.1439,
"ER_per_IP": 0.43885,
"H_per_IP": 0.84892,
"BB_per_IP": 0.29496,
"SO_per_IP": 1.23022,
"HR_per_IP": 0.10072
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.036,
"predicted_H": 4.898,
"predicted_BB": 2.368,
"predicted_SO": 6.179,
"predicted_HR": 0.578,
"predicted_ERA": 5.5414,
"predicted_WHIP": 1.4738
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.036,
"final": 3.4391,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.898,
"final": 4.9407,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.368,
"final": 1.3778,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.179,
"final": 6.5223,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.578,
"final": 0.7545,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5414,
"final": 5.5414,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4738,
"final": 1.4738,
"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.0,
"ER": 33,
"H": 54,
"BB": 23,
"SO": 64,
"HR": 5,
"ERA": 5.823529411764706,
"WHIP": 1.5098039215686274,
"K9": 11.294117647058824,
"HR9": 0.8823529411764706,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.1634571879499573,
"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": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 7.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": "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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 656.0,
"runs_allowed": 630.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1955,
"avg_runs_scored": 4.9323,
"avg_runs_allowed": 4.7368,
"offense_index": 1.1028,
"defense_index": 0.9442,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.8,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0081
},
"opponent": {
"team": "SD",
"games": 132,
"wins": 71,
"losses": 61,
"win_pct": 0.5379,
"runs_scored": 566.0,
"runs_allowed": 551.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1136,
"avg_runs_scored": 4.2879,
"avg_runs_allowed": 4.1742,
"offense_index": 0.9587,
"defense_index": 1.0715,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0812
},
"edges": {
"quality_edge": -0.0731,
"offense_edge": 0.1028,
"opponent_offense_edge": -0.0413,
"defense_strength": -0.0558,
"opponent_defense_weakness": -0.0715,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9971,
"run_prevention": 1.0026,
"strikeout": 1.0011
},
"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": 552.0,
"k_percent": 29.8,
"bb_percent": 7.2,
"woba": 0.295,
"xwoba": 0.277,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 39.0,
"avg_best_speed": 77.1359,
"avg_hyper_speed": 93.9975,
"whiff_percent": 28.5,
"swing_percent": 51.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.4542,
"command_and_miss": 0.7639,
"regression_edge": 0.5143,
"xwoba_edge": 0.9714,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.1714,
"whiff_edge": 0.4643,
"bb_edge": 0.5,
"pitch_design_score": 0.152
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694973",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.56124288966909,
"release_spin_rate": 2107.685774056805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.56124288966909,
"release_spin_rate": 2107.685774056805,
"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.5612,
"release_spin_rate": 2107.6858,
"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.152,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0854,
"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.5165,
"sample_weight": 1.0,
"run_prevention_factor": 0.9561,
"strikeout_factor": 1.0631,
"walk_factor": 0.96,
"homer_factor": 0.9813,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694973",
"espn_id": 4719507,
"player_name": "Paul Skenes",
"team": "PIT",
"role": "pitcher",
"espn_rank": 66,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 66,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 26.0,
"gs_rank": 10,
"qs_value": 10.0,
"qs_rank": 49,
"era_value": 3.9496,
"era_rank": 38.0,
"w_value": 9.0,
"w_rank": 29,
"l_value": 11.0,
"l_rank": 7,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 139.0,
"ip_rank": 37,
"h_value": 118.0,
"h_rank": 61,
"er_value": 61.0,
"er_rank": 41,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 41.0,
"bb_rank": 65,
"k_value": 171.0,
"k_rank": 8,
"k_per_9_value": 11.071942,
"k_per_9_rank": 5,
"whip_value": 1.1438,
"whip_rank": 22.0,
"war_value": 2.05,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9561,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9561,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.96,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9813,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0631,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 88,
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260825_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_PIT@SD | home | Michael King | Michael King | True | 6.0 | 7.0 | 3 | 1 | 0 | -1 | 5/5 | 2/2 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.38255033557047,
"WHIP": 1.174496644295302,
"IP": 149.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.731,
"recent_avg_IP": 5.933,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0828,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9917,
"walk_factor": 1.006,
"homer_factor": 1.0008,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 9.5,
"woba": 0.294,
"xwoba": 0.321,
"barrel_percent": 8.5,
"hard_hit_percent": 32.4,
"whiff_percent": 24.8
},
"espn_rank": {
"rank": 29,
"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": "650633",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 13.0,
"R": 14.0,
"H": 26.0,
"BB": 9.0,
"SO": 25.0,
"HR": 7.0,
"BF": 119.0,
"Pitches": 478.0
},
"per_game": {
"IP": 6.0,
"ER": 2.6,
"R": 2.8,
"H": 5.2,
"BB": 1.8,
"SO": 5.0,
"HR": 1.4,
"BF": 23.8,
"Pitches": 95.6
},
"rates": {
"ERA": 3.9438,
"WHIP": 1.1798,
"ER_per_IP": 0.4382,
"H_per_IP": 0.8764,
"BB_per_IP": 0.30337,
"SO_per_IP": 0.8427,
"HR_per_IP": 0.23596
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 22.0,
"R": 23.0,
"H": 45.0,
"BB": 23.0,
"SO": 50.0,
"HR": 8.0,
"BF": 235.0,
"Pitches": 936.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.3,
"H": 4.5,
"BB": 2.3,
"SO": 5.0,
"HR": 0.8,
"BF": 23.5,
"Pitches": 93.6
},
"rates": {
"ERA": 3.4737,
"WHIP": 1.193,
"ER_per_IP": 0.38596,
"H_per_IP": 0.78947,
"BB_per_IP": 0.40351,
"SO_per_IP": 0.87719,
"HR_per_IP": 0.14035
}
},
"season": {
"games": 26,
"totals": {
"IP": 149.0,
"ER": 56.0,
"R": 58.0,
"H": 117.0,
"BB": 58.0,
"SO": 128.0,
"HR": 18.0,
"BF": 610.0,
"Pitches": 2410.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1538,
"R": 2.2308,
"H": 4.5,
"BB": 2.2308,
"SO": 4.9231,
"HR": 0.6923,
"BF": 23.4615,
"Pitches": 92.6923
},
"rates": {
"ERA": 3.3826,
"WHIP": 1.1745,
"ER_per_IP": 0.37584,
"H_per_IP": 0.78523,
"BB_per_IP": 0.38926,
"SO_per_IP": 0.85906,
"HR_per_IP": 0.12081
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.472,
"predicted_H": 4.98,
"predicted_BB": 2.09,
"predicted_SO": 5.098,
"predicted_HR": 1.019,
"predicted_ERA": 3.8051,
"predicted_WHIP": 1.2093
}
},
"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": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.472,
"final": 1.8565,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.98,
"final": 4.9884,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.09,
"final": 2.0524,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.098,
"final": 5.8933,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.019,
"final": 0.5929,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8051,
"final": 3.8051,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2093,
"final": 1.2093,
"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": 22,
"H": 45,
"BB": 23,
"SO": 50,
"HR": 8,
"ERA": 3.4736842105263155,
"WHIP": 1.1929824561403508,
"K9": 7.894736842105262,
"HR9": 1.263157894736842,
"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-08-19T00:00:00"
},
"recent_form_boost": 0.8911790661749315,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 7.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
}
}
],
"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": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 132,
"wins": 71,
"losses": 61,
"win_pct": 0.5379,
"runs_scored": 566.0,
"runs_allowed": 551.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1136,
"avg_runs_scored": 4.2879,
"avg_runs_allowed": 4.1742,
"offense_index": 0.9587,
"defense_index": 1.0715,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.0812
},
"opponent": {
"team": "PIT",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 656.0,
"runs_allowed": 630.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1955,
"avg_runs_scored": 4.9323,
"avg_runs_allowed": 4.7368,
"offense_index": 1.1028,
"defense_index": 0.9442,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.8,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0081
},
"edges": {
"quality_edge": 0.0731,
"offense_edge": -0.0413,
"opponent_offense_edge": 0.1028,
"defense_strength": 0.0715,
"opponent_defense_weakness": 0.0558,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.001,
"run_prevention": 1.0056,
"strikeout": 0.994
},
"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": 581.0,
"k_percent": 21.0,
"bb_percent": 9.5,
"woba": 0.294,
"xwoba": 0.321,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 32.4,
"avg_best_speed": 75.9793,
"avg_hyper_speed": 93.1664,
"whiff_percent": 24.8,
"swing_percent": 46.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0454,
"command_and_miss": -0.1018,
"regression_edge": -0.7714,
"xwoba_edge": -0.2857,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.7714,
"whiff_edge": -0.0643,
"bb_edge": -0.075,
"pitch_design_score": -0.0586
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.80059058382786,
"release_spin_rate": 2280.2363276638857,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.80059058382786,
"release_spin_rate": 2280.2363276638857,
"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.8006,
"release_spin_rate": 2280.2363,
"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.0586,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4188,
"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.0828,
"sample_weight": 1.0,
"run_prevention_factor": 1.007,
"strikeout_factor": 0.9917,
"walk_factor": 1.006,
"homer_factor": 1.0008,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650633",
"espn_id": 40429,
"player_name": "Michael King",
"team": "SD",
"role": "pitcher",
"espn_rank": 29,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 29,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 26.0,
"gs_rank": 10,
"qs_value": 13.0,
"qs_rank": 19,
"era_value": 3.3825,
"era_rank": 23.0,
"w_value": 8.0,
"w_rank": 46,
"l_value": 9.0,
"l_rank": 18,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 149.0,
"ip_rank": 16,
"h_value": 117.0,
"h_rank": 66,
"er_value": 56.0,
"er_rank": 58,
"hr_value": 18.0,
"hr_rank": 38,
"bb_value": 58.0,
"bb_rank": 12,
"k_value": 128.0,
"k_rank": 41,
"k_per_9_value": 7.7315435,
"k_per_9_rank": 69,
"whip_value": 1.1744,
"whip_rank": 27.0,
"war_value": 2.97,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.007,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.007,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0008,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9917,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260825_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_TB@DET | away | Casey Legumina | Casey Legumina | True | 5.0 | 2.1 | -8 | 1 | 0 | -1 | 5/1 | 1/0 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6745562130177514,
"WHIP": 1.2248520710059172,
"IP": 56.1,
"games_started": null,
"games_pitched": 43,
"role_avg_IP": 1.6,
"recent_avg_IP": 1.6,
"last_start_IP": 1.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.158,
"sample_weight": 0.888,
"run_prevention_factor": 1.0134,
"strikeout_factor": 0.9602,
"walk_factor": 0.9414,
"homer_factor": 1.0008,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 5.9,
"woba": 0.318,
"xwoba": 0.323,
"barrel_percent": 6.9,
"hard_hit_percent": 37.1,
"whiff_percent": 21.4
},
"espn_rank": {
"rank": 307,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 56.1,
"season_ERA": 3.675,
"season_WHIP": 1.225,
"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": 11.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6934,
"prior_weight": 0.3066
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "668984",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 43,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.2,
"ER": 2.0,
"R": 2.0,
"H": 7.0,
"BB": 1.0,
"SO": 9.0,
"HR": 0.0,
"BF": 27.0,
"Pitches": 119.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.4,
"H": 1.4,
"BB": 0.2,
"SO": 1.8,
"HR": 0.0,
"BF": 5.4,
"Pitches": 23.8
},
"rates": {
"ERA": 2.7,
"WHIP": 1.2,
"ER_per_IP": 0.3,
"H_per_IP": 1.05,
"BB_per_IP": 0.15,
"SO_per_IP": 1.35,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 13.0,
"ER": 6.0,
"R": 6.0,
"H": 13.0,
"BB": 1.0,
"SO": 12.0,
"HR": 0.0,
"BF": 54.0,
"Pitches": 213.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 1.3,
"BB": 0.1,
"SO": 1.2,
"HR": 0.0,
"BF": 5.4,
"Pitches": 21.3
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.0769,
"ER_per_IP": 0.46154,
"H_per_IP": 1.0,
"BB_per_IP": 0.07692,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.0
}
},
"season": {
"games": 43,
"totals": {
"IP": 56.1,
"ER": 23.0,
"R": 23.0,
"H": 56.0,
"BB": 13.0,
"SO": 43.0,
"HR": 3.0,
"BF": 237.0,
"Pitches": 896.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5349,
"R": 0.5349,
"H": 1.3023,
"BB": 0.3023,
"SO": 1.0,
"HR": 0.0698,
"BF": 5.5116,
"Pitches": 20.8372
},
"rates": {
"ERA": 3.6746,
"WHIP": 1.2249,
"ER_per_IP": 0.40828,
"H_per_IP": 0.99408,
"BB_per_IP": 0.23077,
"SO_per_IP": 0.76331,
"HR_per_IP": 0.05325
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.023,
"predicted_H": 2.476,
"predicted_BB": 0.516,
"predicted_SO": 2.558,
"predicted_HR": 0.129,
"predicted_ERA": 3.7469,
"predicted_WHIP": 1.2178
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4795,
"form_weight": 0.5205,
"form_reliability": 0.6934,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6934,
"prior_weight": 0.3066
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.1,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.023,
"final": 1.012,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 2.476,
"final": 3.6864,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.516,
"final": 0.7481,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.558,
"final": 4.2086,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.129,
"final": 0.5467,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7469,
"final": 3.7469,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2178,
"final": 1.2178,
"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": 13.0,
"ER": 6,
"H": 13,
"BB": 1,
"SO": 12,
"HR": 0,
"ERA": 4.153846153846154,
"WHIP": 1.076923076923077,
"K9": 8.307692307692308,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.9850575889805393,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.306,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6934,
"prior_weight": 0.3066
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "668984",
"player_name": "Casey Legumina",
"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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "TB",
"games": 131,
"wins": 78,
"losses": 53,
"win_pct": 0.5954,
"runs_scored": 591.0,
"runs_allowed": 544.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3588,
"avg_runs_scored": 4.5115,
"avg_runs_allowed": 4.1527,
"offense_index": 1.0089,
"defense_index": 1.0768,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.1,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.0902
},
"opponent": {
"team": "DET",
"games": 131,
"wins": 61,
"losses": 70,
"win_pct": 0.4656,
"runs_scored": 588.0,
"runs_allowed": 518.0,
"run_differential": 70.0,
"run_differential_per_game": 0.5344,
"avg_runs_scored": 4.4885,
"avg_runs_allowed": 3.9542,
"offense_index": 1.0038,
"defense_index": 1.1309,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1035
},
"edges": {
"quality_edge": 0.1937,
"offense_edge": 0.0089,
"opponent_offense_edge": 0.0038,
"defense_strength": 0.0768,
"opponent_defense_weakness": -0.1309,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0099,
"run_prevention": 0.9832,
"strikeout": 1.0055
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "668984",
"profile": {
"available": true,
"pitcher_id": "668984",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 222.0,
"k_percent": 18.0,
"bb_percent": 5.9,
"woba": 0.318,
"xwoba": 0.323,
"sweet_spot_percent": 39.7,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 37.1,
"avg_best_speed": 75.6764,
"avg_hyper_speed": 93.3787,
"whiff_percent": 21.4,
"swing_percent": 52.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.1609,
"command_and_miss": -0.2846,
"regression_edge": -0.1429,
"xwoba_edge": -0.3429,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.1,
"whiff_edge": -0.55,
"bb_edge": 0.825,
"pitch_design_score": 0.0055
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "668984",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 17,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 17,
"pitch_usage": 0.0,
"release_speed": 89.94667005905687,
"release_spin_rate": 2320.9697362465054,
"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": 17,
"pitch_usage": 0.0,
"release_speed": 89.94667005905687,
"release_spin_rate": 2320.9697362465054,
"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.9467,
"release_spin_rate": 2320.9697,
"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.0055,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0396,
"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.158,
"sample_weight": 0.888,
"run_prevention_factor": 1.0134,
"strikeout_factor": 0.9602,
"walk_factor": 0.9414,
"homer_factor": 1.0008,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "668984",
"espn_id": 4346117,
"player_name": "Casey Legumina",
"team": "TB",
"role": "pitcher",
"espn_rank": 307,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 307,
"gp_value": 44.0,
"gp_rank": 114,
"gs_value": 5.0,
"gs_rank": 208,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 3.994,
"era_rank": null,
"w_value": 2.0,
"w_rank": 293,
"l_value": 2.0,
"l_rank": 299,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 7.0,
"hld_rank": 119,
"ip_value": 56.1,
"ip_rank": 223,
"h_value": 57.0,
"h_rank": 184,
"er_value": 25.0,
"er_rank": 216,
"hr_value": 4.0,
"hr_rank": 346,
"bb_value": 14.0,
"bb_rank": 370,
"k_value": 43.0,
"k_rank": 303,
"k_per_9_value": 6.8698225,
"k_per_9_rank": 36,
"whip_value": 1.2603,
"whip_rank": null,
"war_value": 0.24,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0119,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0119,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0007,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9647,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260825_TB@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"
}
} |
| 20260825 | 20260825_TB@DET | home | Jackson Jobe | Jackson Jobe | True | 4.2 | 4.1 | -1 | 3 | 1 | -2 | 6/4 | 2/3 | 3/4 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.3571428571428572,
"IP": 14.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 4.667,
"recent_avg_IP": 4.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.357,
"sample_weight": 0.45,
"run_prevention_factor": 1.0303,
"strikeout_factor": 0.9749,
"walk_factor": 0.991,
"homer_factor": 1.0728,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 8.2,
"woba": 0.353,
"xwoba": 0.378,
"barrel_percent": 12.2,
"hard_hit_percent": 40.5,
"whiff_percent": 19.5
},
"espn_rank": {
"rank": 341,
"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": "695549",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 14.0,
"ER": 7.0,
"R": 7.0,
"H": 14.0,
"BB": 5.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 231.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.3333,
"H": 4.6667,
"BB": 1.6667,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 77.0
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3571,
"ER_per_IP": 0.5,
"H_per_IP": 1.0,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.14286
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 14.0,
"ER": 7.0,
"R": 7.0,
"H": 14.0,
"BB": 5.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 231.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.3333,
"H": 4.6667,
"BB": 1.6667,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 77.0
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3571,
"ER_per_IP": 0.5,
"H_per_IP": 1.0,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 3,
"totals": {
"IP": 14.0,
"ER": 7.0,
"R": 7.0,
"H": 14.0,
"BB": 5.0,
"SO": 11.0,
"HR": 2.0,
"BF": 61.0,
"Pitches": 231.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3333,
"R": 2.3333,
"H": 4.6667,
"BB": 1.6667,
"SO": 3.6667,
"HR": 0.6667,
"BF": 20.3333,
"Pitches": 77.0
},
"rates": {
"ERA": 4.5,
"WHIP": 1.3571,
"ER_per_IP": 0.5,
"H_per_IP": 1.0,
"BB_per_IP": 0.35714,
"SO_per_IP": 0.78571,
"HR_per_IP": 0.14286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.445,
"predicted_H": 4.804,
"predicted_BB": 1.772,
"predicted_SO": 4.316,
"predicted_HR": 0.711,
"predicted_ERA": 4.5143,
"predicted_WHIP": 1.349
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.445,
"final": 2.7858,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.804,
"final": 5.5384,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.772,
"final": 1.912,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.316,
"final": 3.5079,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.711,
"final": 0.2744,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5143,
"final": 4.5143,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.349,
"final": 1.349,
"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": 14.0,
"ER": 7,
"H": 14,
"BB": 5,
"SO": 11,
"HR": 2,
"ERA": 4.5,
"WHIP": 1.3571428571428572,
"K9": 7.071428571428571,
"HR9": 1.2857142857142858,
"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-08-19T00:00:00"
},
"recent_form_boost": 1.0049108969187424,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 3.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.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695549",
"player_name": "Jackson Jobe",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.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": "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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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": 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": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"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.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 131,
"wins": 61,
"losses": 70,
"win_pct": 0.4656,
"runs_scored": 588.0,
"runs_allowed": 518.0,
"run_differential": 70.0,
"run_differential_per_game": 0.5344,
"avg_runs_scored": 4.4885,
"avg_runs_allowed": 3.9542,
"offense_index": 1.0038,
"defense_index": 1.1309,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.6,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.1035
},
"opponent": {
"team": "TB",
"games": 131,
"wins": 78,
"losses": 53,
"win_pct": 0.5954,
"runs_scored": 591.0,
"runs_allowed": 544.0,
"run_differential": 47.0,
"run_differential_per_game": 0.3588,
"avg_runs_scored": 4.5115,
"avg_runs_allowed": 4.1527,
"offense_index": 1.0089,
"defense_index": 1.0768,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.1,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.0902
},
"edges": {
"quality_edge": -0.1937,
"offense_edge": 0.0038,
"opponent_offense_edge": 0.0089,
"defense_strength": 0.1309,
"opponent_defense_weakness": -0.0768,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9958,
"run_prevention": 0.998,
"strikeout": 0.9935
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695549",
"profile": {
"available": true,
"pitcher_id": "695549",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 38.0,
"k_percent": 18.0,
"bb_percent": 8.2,
"woba": 0.353,
"xwoba": 0.378,
"sweet_spot_percent": 28.6,
"barrel_batted_rate": 12.2,
"hard_hit_percent": 40.5,
"avg_best_speed": 77.0987,
"avg_hyper_speed": 93.9757,
"whiff_percent": 19.5,
"swing_percent": 48.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -1.0781,
"command_and_miss": -0.4946,
"regression_edge": -0.7143,
"xwoba_edge": -1.9143,
"barrel_edge": -1.1111,
"hard_hit_edge": -0.3857,
"whiff_edge": -0.8214,
"bb_edge": 0.25,
"pitch_design_score": 0.13
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695549",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 92.16868100494861,
"release_spin_rate": 2501.427959649791,
"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": 72,
"pitch_usage": 0.0,
"release_speed": 92.16868100494861,
"release_spin_rate": 2501.427959649791,
"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.1687,
"release_spin_rate": 2501.428,
"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.13,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9284,
"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.357,
"sample_weight": 0.45,
"run_prevention_factor": 1.0303,
"strikeout_factor": 0.9749,
"walk_factor": 0.991,
"homer_factor": 1.0728,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695549",
"espn_id": 4872647,
"player_name": "Jackson Jobe",
"team": "DET",
"role": "pitcher",
"espn_rank": 341,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 341,
"gp_value": 3.0,
"gp_rank": 671,
"gs_value": 3.0,
"gs_rank": 244,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 4.5,
"era_rank": null,
"w_value": 1.0,
"w_rank": 386,
"l_value": 1.0,
"l_rank": 402,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 14.0,
"ip_rank": 546,
"h_value": 14.0,
"h_rank": 551,
"er_value": 7.0,
"er_rank": 566,
"hr_value": 2.0,
"hr_rank": 483,
"bb_value": 5.0,
"bb_rank": 592,
"k_value": 11.0,
"k_rank": 548,
"k_per_9_value": 7.0714283,
"k_per_9_rank": 27,
"whip_value": 1.3571,
"whip_rank": null,
"war_value": 0.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0136,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0136,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0328,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9887,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"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": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260825_TB@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"
}
} |
| 20260825 | 20260825_TEX@CHW | away | Jacob deGrom | Jacob deGrom | True | 5.0 | 3.2 | -4 | 0 | 8 | 8 | 2/6 | 1/5 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7657894736842104,
"WHIP": 1.1289473684210527,
"IP": 126.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.278,
"recent_avg_IP": 4.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2891,
"sample_weight": 1.0,
"run_prevention_factor": 0.9754,
"strikeout_factor": 1.0946,
"walk_factor": 0.94,
"homer_factor": 1.0602,
"regression_flag": "neutral",
"k_percent": 30.3,
"bb_percent": 6.2,
"woba": 0.285,
"xwoba": 0.294,
"barrel_percent": 8.8,
"hard_hit_percent": 45.9,
"whiff_percent": 33.5
},
"espn_rank": {
"rank": 62,
"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": "594798",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 8.0,
"SO": 29.0,
"HR": 1.0,
"BF": 94.0,
"Pitches": 416.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.6,
"SO": 5.8,
"HR": 0.2,
"BF": 18.8,
"Pitches": 83.2
},
"rates": {
"ERA": 3.7969,
"WHIP": 1.5,
"ER_per_IP": 0.42188,
"H_per_IP": 1.125,
"BB_per_IP": 0.375,
"SO_per_IP": 1.35938,
"HR_per_IP": 0.04688
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.0,
"ER": 26.0,
"R": 26.0,
"H": 50.0,
"BB": 17.0,
"SO": 68.0,
"HR": 4.0,
"BF": 213.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.6,
"H": 5.0,
"BB": 1.7,
"SO": 6.8,
"HR": 0.4,
"BF": 21.3,
"Pitches": 88.6
},
"rates": {
"ERA": 4.68,
"WHIP": 1.34,
"ER_per_IP": 0.52,
"H_per_IP": 1.0,
"BB_per_IP": 0.34,
"SO_per_IP": 1.36,
"HR_per_IP": 0.08
}
},
"season": {
"games": 24,
"totals": {
"IP": 126.2,
"ER": 53.0,
"R": 53.0,
"H": 111.0,
"BB": 32.0,
"SO": 157.0,
"HR": 17.0,
"BF": 518.0,
"Pitches": 2118.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2083,
"R": 2.2083,
"H": 4.625,
"BB": 1.3333,
"SO": 6.5417,
"HR": 0.7083,
"BF": 21.5833,
"Pitches": 88.25
},
"rates": {
"ERA": 3.7658,
"WHIP": 1.1289,
"ER_per_IP": 0.41842,
"H_per_IP": 0.87632,
"BB_per_IP": 0.25263,
"SO_per_IP": 1.23947,
"HR_per_IP": 0.13421
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.229,
"predicted_H": 4.913,
"predicted_BB": 1.65,
"predicted_SO": 6.096,
"predicted_HR": 0.424,
"predicted_ERA": 4.1727,
"predicted_WHIP": 1.3654
}
},
"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.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.229,
"final": 1.2865,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.913,
"final": 3.6813,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.65,
"final": 1.3752,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.096,
"final": 6.0554,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.424,
"final": 0.2447,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1727,
"final": 4.1727,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3654,
"final": 1.3654,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.0,
"ER": 26,
"H": 50,
"BB": 17,
"SO": 68,
"HR": 4,
"ERA": 4.68,
"WHIP": 1.34,
"K9": 12.24,
"HR9": 0.72,
"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-08-20T00:00:00"
},
"recent_form_boost": 1.030565031087212,
"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": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "594798",
"player_name": "Jacob deGrom",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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": 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": 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": "TEX",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 532.0,
"runs_allowed": 569.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2803,
"avg_runs_scored": 4.0303,
"avg_runs_allowed": 4.3106,
"offense_index": 0.903,
"defense_index": 1.0354,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.1,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0005
},
"opponent": {
"team": "CHW",
"games": 131,
"wins": 68,
"losses": 63,
"win_pct": 0.5191,
"runs_scored": 620.0,
"runs_allowed": 586.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2595,
"avg_runs_scored": 4.7328,
"avg_runs_allowed": 4.4733,
"offense_index": 1.0604,
"defense_index": 0.9978,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.7,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0482
},
"edges": {
"quality_edge": -0.0477,
"offense_edge": -0.097,
"opponent_offense_edge": 0.0604,
"defense_strength": 0.0354,
"opponent_defense_weakness": 0.0022,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9967,
"run_prevention": 1.0085,
"strikeout": 0.9937
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "594798",
"profile": {
"available": true,
"pitcher_id": "594798",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 30.3,
"bb_percent": 6.2,
"woba": 0.285,
"xwoba": 0.294,
"sweet_spot_percent": 39.5,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 45.9,
"avg_best_speed": 80.8519,
"avg_hyper_speed": 94.8239,
"whiff_percent": 33.5,
"swing_percent": 51.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": 0.0277,
"command_and_miss": 1.0961,
"regression_edge": -0.2571,
"xwoba_edge": 0.4857,
"barrel_edge": -0.3556,
"hard_hit_edge": -1.1571,
"whiff_edge": 1.1786,
"bb_edge": 0.75,
"pitch_design_score": 0.1788
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"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": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0398,
"release_spin_rate": 2438.3277,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1788,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2769,
"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.2891,
"sample_weight": 1.0,
"run_prevention_factor": 0.9754,
"strikeout_factor": 1.0946,
"walk_factor": 0.94,
"homer_factor": 1.0602,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "594798",
"espn_id": 32796,
"player_name": "Jacob deGrom",
"team": "TEX",
"role": "pitcher",
"espn_rank": 62,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 62,
"gp_value": 24.0,
"gp_rank": 295,
"gs_value": 24.0,
"gs_rank": 43,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 3.7657,
"era_rank": null,
"w_value": 9.0,
"w_rank": 29,
"l_value": 8.0,
"l_rank": 37,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 126.2,
"ip_rank": 59,
"h_value": 111.0,
"h_rank": 80,
"er_value": 53.0,
"er_rank": 73,
"hr_value": 17.0,
"hr_rank": 51,
"bb_value": 32.0,
"bb_rank": 121,
"k_value": 157.0,
"k_rank": 18,
"k_per_9_value": 11.155263,
"k_per_9_rank": 8,
"whip_value": 1.1289,
"whip_rank": null,
"war_value": 2.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9754,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9754,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.94,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0602,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0946,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 8",
"detail": "Actual minus predicted earned runs was +8; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260825_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260825 | 20260825_TEX@CHW | home | Anthony Kay | Anthony Kay | True | 5.1 | 4.2 | -2 | 4 | 4 | 0 | 5/6 | 3/2 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9581151832460733,
"WHIP": 1.3272251308900525,
"IP": 127.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.014,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9694,
"walk_factor": 0.976,
"homer_factor": 1.0509,
"regression_flag": "neutral",
"k_percent": 18.4,
"bb_percent": 8.0,
"woba": 0.333,
"xwoba": 0.337,
"barrel_percent": 8.2,
"hard_hit_percent": 39.7,
"whiff_percent": 23.5
},
"espn_rank": {
"rank": 72,
"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": "641743",
"report_date": "20260825",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 10.0,
"R": 10.0,
"H": 29.0,
"BB": 5.0,
"SO": 24.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 449.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.8,
"BB": 1.0,
"SO": 4.8,
"HR": 0.4,
"BF": 24.2,
"Pitches": 89.8
},
"rates": {
"ERA": 3.1034,
"WHIP": 1.1724,
"ER_per_IP": 0.34483,
"H_per_IP": 1.0,
"BB_per_IP": 0.17241,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.06897
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 20.0,
"R": 22.0,
"H": 48.0,
"BB": 15.0,
"SO": 41.0,
"HR": 5.0,
"BF": 219.0,
"Pitches": 824.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.2,
"H": 4.8,
"BB": 1.5,
"SO": 4.1,
"HR": 0.5,
"BF": 21.9,
"Pitches": 82.4
},
"rates": {
"ERA": 3.5294,
"WHIP": 1.2353,
"ER_per_IP": 0.39216,
"H_per_IP": 0.94118,
"BB_per_IP": 0.29412,
"SO_per_IP": 0.80392,
"HR_per_IP": 0.09804
}
},
"season": {
"games": 26,
"totals": {
"IP": 127.1,
"ER": 56.0,
"R": 60.0,
"H": 124.0,
"BB": 45.0,
"SO": 104.0,
"HR": 16.0,
"BF": 565.0,
"Pitches": 2246.0
},
"per_game": {
"IP": 5.0,
"ER": 2.1538,
"R": 2.3077,
"H": 4.7692,
"BB": 1.7308,
"SO": 4.0,
"HR": 0.6154,
"BF": 21.7308,
"Pitches": 86.3846
},
"rates": {
"ERA": 3.9581,
"WHIP": 1.3272,
"ER_per_IP": 0.43979,
"H_per_IP": 0.97382,
"BB_per_IP": 0.3534,
"SO_per_IP": 0.81675,
"HR_per_IP": 0.12565
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.123,
"predicted_H": 5.171,
"predicted_BB": 1.432,
"predicted_SO": 4.445,
"predicted_HR": 0.529,
"predicted_ERA": 3.6008,
"predicted_WHIP": 1.2445
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.123,
"final": 2.9079,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.171,
"final": 5.0995,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.432,
"final": 2.0877,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.445,
"final": 5.5134,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.529,
"final": 1.1441,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6008,
"final": 3.6008,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2445,
"final": 1.2445,
"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.0,
"ER": 20,
"H": 48,
"BB": 15,
"SO": 41,
"HR": 5,
"ERA": 3.5294117647058827,
"WHIP": 1.235294117647059,
"K9": 7.23529411764706,
"HR9": 0.8823529411764707,
"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-08-20T00:00:00"
},
"recent_form_boost": 0.8985062075578005,
"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": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 2.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": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 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": "CHW",
"games": 131,
"wins": 68,
"losses": 63,
"win_pct": 0.5191,
"runs_scored": 620.0,
"runs_allowed": 586.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2595,
"avg_runs_scored": 4.7328,
"avg_runs_allowed": 4.4733,
"offense_index": 1.0604,
"defense_index": 0.9978,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.7,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0482
},
"opponent": {
"team": "TEX",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 532.0,
"runs_allowed": 569.0,
"run_differential": -37.0,
"run_differential_per_game": -0.2803,
"avg_runs_scored": 4.0303,
"avg_runs_allowed": 4.3106,
"offense_index": 0.903,
"defense_index": 1.0354,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 3.1,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0005
},
"edges": {
"quality_edge": 0.0477,
"offense_edge": 0.0604,
"opponent_offense_edge": -0.097,
"defense_strength": -0.0022,
"opponent_defense_weakness": -0.0354,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0057,
"run_prevention": 0.9823,
"strikeout": 1.0092
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 18.4,
"bb_percent": 8.0,
"woba": 0.333,
"xwoba": 0.337,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 39.7,
"avg_best_speed": 76.4246,
"avg_hyper_speed": 94.3173,
"whiff_percent": 23.5,
"swing_percent": 46.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6713,
"avg_hyper_speed": 93.9078,
"whiff_percent": 25.25,
"swing_percent": 47.3
},
"components": {
"contact_quality": -0.4098,
"command_and_miss": -0.2589,
"regression_edge": -0.1143,
"xwoba_edge": -0.7429,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.2714,
"whiff_edge": -0.25,
"bb_edge": 0.3,
"pitch_design_score": 0.0127
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"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": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"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": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"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.0751,
"release_spin_rate": 2281.5022,
"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.0127,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.091,
"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.3072,
"sample_weight": 1.0,
"run_prevention_factor": 1.0261,
"strikeout_factor": 0.9694,
"walk_factor": 0.976,
"homer_factor": 1.0509,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641743",
"espn_id": 40947,
"player_name": "Anthony Kay",
"team": "CHW",
"role": "pitcher",
"espn_rank": 72,
"espn_total_ranked": 830,
"metrics": {
"espn_rank": 72,
"gp_value": 26.0,
"gp_rank": 235,
"gs_value": 24.0,
"gs_rank": 43,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 3.9581,
"era_rank": null,
"w_value": 9.0,
"w_rank": 29,
"l_value": 6.0,
"l_rank": 96,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 330,
"ip_value": 127.1,
"ip_rank": 58,
"h_value": 124.0,
"h_rank": 47,
"er_value": 56.0,
"er_rank": 58,
"hr_value": 16.0,
"hr_rank": 64,
"bb_value": 45.0,
"bb_rank": 42,
"k_value": 104.0,
"k_rank": 78,
"k_per_9_value": 7.3507853,
"k_per_9_rank": 36,
"whip_value": 1.3272,
"whip_rank": null,
"war_value": 1.96,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0261,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0261,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0509,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9694,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260825_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |