| 20260823 | 20260823_ATL@MIL | away | Tyler Mahle | Tyler Mahle | True | 5.2 | 5.0 | -2 | 5 | 1 | -4 | 5/6 | 2/2 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.526470588235294,
"WHIP": 1.3058823529411765,
"IP": 113.1,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 5.397,
"recent_avg_IP": 6.067,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0901,
"sample_weight": 1.0,
"run_prevention_factor": 1.0077,
"strikeout_factor": 0.9886,
"walk_factor": 0.99,
"homer_factor": 1.0111,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 8.5,
"woba": 0.324,
"xwoba": 0.315,
"barrel_percent": 7.5,
"hard_hit_percent": 37.8,
"whiff_percent": 22.7
},
"espn_rank": {
"rank": 193,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "641816",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 8.0,
"R": 8.0,
"H": 21.0,
"BB": 7.0,
"SO": 31.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 448.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 4.2,
"BB": 1.4,
"SO": 6.2,
"HR": 0.6,
"BF": 22.8,
"Pitches": 89.6
},
"rates": {
"ERA": 2.3736,
"WHIP": 0.9231,
"ER_per_IP": 0.26374,
"H_per_IP": 0.69231,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.02198,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 19.0,
"R": 20.0,
"H": 45.0,
"BB": 16.0,
"SO": 51.0,
"HR": 5.0,
"BF": 224.0,
"Pitches": 873.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 2.0,
"H": 4.5,
"BB": 1.6,
"SO": 5.1,
"HR": 0.5,
"BF": 22.4,
"Pitches": 87.3
},
"rates": {
"ERA": 3.0176,
"WHIP": 1.0765,
"ER_per_IP": 0.33529,
"H_per_IP": 0.79412,
"BB_per_IP": 0.28235,
"SO_per_IP": 0.9,
"HR_per_IP": 0.08824
}
},
"season": {
"games": 21,
"totals": {
"IP": 113.1,
"ER": 57.0,
"R": 58.0,
"H": 108.0,
"BB": 40.0,
"SO": 108.0,
"HR": 16.0,
"BF": 473.0,
"Pitches": 1839.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7143,
"R": 2.7619,
"H": 5.1429,
"BB": 1.9048,
"SO": 5.1429,
"HR": 0.7619,
"BF": 22.5238,
"Pitches": 87.5714
},
"rates": {
"ERA": 4.5265,
"WHIP": 1.3059,
"ER_per_IP": 0.50294,
"H_per_IP": 0.95294,
"BB_per_IP": 0.35294,
"SO_per_IP": 0.95294,
"HR_per_IP": 0.14118
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.112,
"predicted_H": 4.686,
"predicted_BB": 1.67,
"predicted_SO": 5.517,
"predicted_HR": 0.643,
"predicted_ERA": 3.3156,
"predicted_WHIP": 1.1086
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4312,
"form_weight": 0.5688,
"form_reliability": 0.8077,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.112,
"final": 3.3574,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.686,
"final": 4.8214,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.67,
"final": 1.8123,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.517,
"final": 6.5878,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.643,
"final": 0.797,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3156,
"final": 3.3156,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1086,
"final": 1.1086,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 19,
"H": 45,
"BB": 16,
"SO": 51,
"HR": 5,
"ERA": 3.0176470588235293,
"WHIP": 1.076470588235294,
"K9": 8.1,
"HR9": 0.7941176470588235,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 0.8376069370282262,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 21.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8077,
"prior_weight": 0.1923
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641816",
"player_name": "Tyler Mahle",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 5.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": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": "ATL",
"games": 130,
"wins": 75,
"losses": 55,
"win_pct": 0.5769,
"runs_scored": 610.0,
"runs_allowed": 502.0,
"run_differential": 108.0,
"run_differential_per_game": 0.8308,
"avg_runs_scored": 4.6923,
"avg_runs_allowed": 3.8615,
"offense_index": 1.0458,
"defense_index": 1.1619,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.5,
"avg_runs_allowed": 3.8,
"run_differential": -13.0
},
"available": true,
"quality_score": 0.0972
},
"opponent": {
"team": "MIL",
"games": 130,
"wins": 81,
"losses": 49,
"win_pct": 0.6231,
"runs_scored": 648.0,
"runs_allowed": 485.0,
"run_differential": 163.0,
"run_differential_per_game": 1.2538,
"avg_runs_scored": 4.9846,
"avg_runs_allowed": 3.7308,
"offense_index": 1.111,
"defense_index": 1.2026,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 2.7,
"run_differential": 32.0
},
"available": true,
"quality_score": 0.3283
},
"edges": {
"quality_edge": -0.2311,
"offense_edge": 0.0458,
"opponent_offense_edge": 0.111,
"defense_strength": 0.1619,
"opponent_defense_weakness": -0.2026,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9912,
"run_prevention": 1.0131,
"strikeout": 0.9842
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641816",
"profile": {
"available": true,
"pitcher_id": "641816",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 421.0,
"k_percent": 22.8,
"bb_percent": 8.5,
"woba": 0.324,
"xwoba": 0.315,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 37.8,
"avg_best_speed": 80.4565,
"avg_hyper_speed": 94.0539,
"whiff_percent": 22.7,
"swing_percent": 45.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1726,
"command_and_miss": -0.0664,
"regression_edge": 0.2571,
"xwoba_edge": -0.1143,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.0143,
"whiff_edge": -0.3714,
"bb_edge": 0.125,
"pitch_design_score": -0.0231
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641816",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.51332979838516,
"release_spin_rate": 2158.0039927237517,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 89.51332979838516,
"release_spin_rate": 2158.0039927237517,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5133,
"release_spin_rate": 2158.004,
"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.0231,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1649,
"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.0901,
"sample_weight": 1.0,
"run_prevention_factor": 1.0077,
"strikeout_factor": 0.9886,
"walk_factor": 0.99,
"homer_factor": 1.0111,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641816",
"espn_id": 34973,
"player_name": "Tyler Mahle",
"team": "ATL",
"role": "pitcher",
"espn_rank": 193,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 193,
"gp_value": 21.0,
"gp_rank": 345,
"gs_value": 21.0,
"gs_rank": 79,
"qs_value": 6.0,
"qs_rank": 82,
"era_value": 4.5264,
"era_rank": null,
"w_value": 4.0,
"w_rank": 168,
"l_value": 10.0,
"l_rank": 13,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 113.1,
"ip_rank": 91,
"h_value": 108.0,
"h_rank": 82,
"er_value": 57.0,
"er_rank": 54,
"hr_value": 16.0,
"hr_rank": 60,
"bb_value": 40.0,
"bb_rank": 66,
"k_value": 108.0,
"k_rank": 72,
"k_per_9_value": 8.57647,
"k_per_9_rank": 21,
"whip_value": 1.3058,
"whip_rank": null,
"war_value": 0.8,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0077,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0077,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.99,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0111,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9886,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"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."
}
],
"provenance": {
"prediction": "output/games/20260823_ATL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_ATL@MIL | home | Shane Drohan | Shane Drohan | True | 5.1 | 5.0 | -1 | 1 | 2 | 1 | 1/8 | 2/3 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.857142857142857,
"WHIP": 1.2458471760797343,
"IP": 100.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.262,
"recent_avg_IP": 5.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.185,
"sample_weight": 1.0,
"run_prevention_factor": 0.9843,
"strikeout_factor": 1.0183,
"walk_factor": 0.976,
"homer_factor": 1.0135,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 7.8,
"woba": 0.303,
"xwoba": 0.295,
"barrel_percent": 8.5,
"hard_hit_percent": 38.1,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 204,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "675660",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 16.0,
"R": 16.0,
"H": 23.0,
"BB": 12.0,
"SO": 23.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 396.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 4.6,
"BB": 2.4,
"SO": 4.6,
"HR": 0.6,
"BF": 20.8,
"Pitches": 79.2
},
"rates": {
"ERA": 5.9178,
"WHIP": 1.4384,
"ER_per_IP": 0.65753,
"H_per_IP": 0.94521,
"BB_per_IP": 0.49315,
"SO_per_IP": 0.94521,
"HR_per_IP": 0.12329
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 25.0,
"R": 27.0,
"H": 50.0,
"BB": 19.0,
"SO": 52.0,
"HR": 5.0,
"BF": 223.0,
"Pitches": 830.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.7,
"H": 5.0,
"BB": 1.9,
"SO": 5.2,
"HR": 0.5,
"BF": 22.3,
"Pitches": 83.0
},
"rates": {
"ERA": 4.2722,
"WHIP": 1.3101,
"ER_per_IP": 0.47468,
"H_per_IP": 0.94937,
"BB_per_IP": 0.36076,
"SO_per_IP": 0.98734,
"HR_per_IP": 0.09494
}
},
"season": {
"games": 25,
"totals": {
"IP": 100.1,
"ER": 43.0,
"R": 48.0,
"H": 92.0,
"BB": 33.0,
"SO": 99.0,
"HR": 9.0,
"BF": 421.0,
"Pitches": 1579.0
},
"per_game": {
"IP": 4.0,
"ER": 1.72,
"R": 1.92,
"H": 3.68,
"BB": 1.32,
"SO": 3.96,
"HR": 0.36,
"BF": 16.84,
"Pitches": 63.16
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2458,
"ER_per_IP": 0.42857,
"H_per_IP": 0.91694,
"BB_per_IP": 0.3289,
"SO_per_IP": 0.98671,
"HR_per_IP": 0.0897
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.693,
"predicted_H": 4.719,
"predicted_BB": 2.025,
"predicted_SO": 4.811,
"predicted_HR": 0.566,
"predicted_ERA": 4.8609,
"predicted_WHIP": 1.3526
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.693,
"final": 1.9812,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.719,
"final": 3.5758,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.025,
"final": 2.0145,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.811,
"final": 4.8905,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.566,
"final": 0.7485,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8609,
"final": 4.8609,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3526,
"final": 1.3526,
"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": 25,
"H": 50,
"BB": 19,
"SO": 52,
"HR": 5,
"ERA": 4.272151898734178,
"WHIP": 1.3101265822784811,
"K9": 8.88607594936709,
"HR9": 0.8544303797468354,
"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-18T00:00:00"
},
"recent_form_boost": 0.9845801313692538,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675660",
"player_name": "Shane Drohan",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 130,
"wins": 81,
"losses": 49,
"win_pct": 0.6231,
"runs_scored": 648.0,
"runs_allowed": 485.0,
"run_differential": 163.0,
"run_differential_per_game": 1.2538,
"avg_runs_scored": 4.9846,
"avg_runs_allowed": 3.7308,
"offense_index": 1.111,
"defense_index": 1.2026,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 2.7,
"run_differential": 32.0
},
"available": true,
"quality_score": 0.3283
},
"opponent": {
"team": "ATL",
"games": 130,
"wins": 75,
"losses": 55,
"win_pct": 0.5769,
"runs_scored": 610.0,
"runs_allowed": 502.0,
"run_differential": 108.0,
"run_differential_per_game": 0.8308,
"avg_runs_scored": 4.6923,
"avg_runs_allowed": 3.8615,
"offense_index": 1.0458,
"defense_index": 1.1619,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.5,
"avg_runs_allowed": 3.8,
"run_differential": -13.0
},
"available": true,
"quality_score": 0.0972
},
"edges": {
"quality_edge": 0.2311,
"offense_edge": 0.111,
"opponent_offense_edge": 0.0458,
"defense_strength": 0.2026,
"opponent_defense_weakness": -0.1619,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0135,
"run_prevention": 0.9755,
"strikeout": 1.0033
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675660",
"profile": {
"available": true,
"pitcher_id": "675660",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 408.0,
"k_percent": 23.5,
"bb_percent": 7.8,
"woba": 0.303,
"xwoba": 0.295,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 38.1,
"avg_best_speed": 76.7436,
"avg_hyper_speed": 93.7969,
"whiff_percent": 27.2,
"swing_percent": 47.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.175,
"command_and_miss": 0.2386,
"regression_edge": 0.2286,
"xwoba_edge": 0.4571,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.0571,
"whiff_edge": 0.2714,
"bb_edge": 0.3,
"pitch_design_score": 0.0272
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675660",
"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": 90.41202882500774,
"release_spin_rate": 2548.1985431891367,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.41202882500774,
"release_spin_rate": 2548.1985431891367,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.412,
"release_spin_rate": 2548.1985,
"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.0272,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1946,
"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.185,
"sample_weight": 1.0,
"run_prevention_factor": 0.9843,
"strikeout_factor": 1.0183,
"walk_factor": 0.976,
"homer_factor": 1.0135,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675660",
"espn_id": 4315203,
"player_name": "Shane Drohan",
"team": "MIL",
"role": "pitcher",
"espn_rank": 204,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 204,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 14.0,
"gs_rank": 133,
"qs_value": 5.0,
"qs_rank": 99,
"era_value": 3.8571,
"era_rank": null,
"w_value": 6.0,
"w_rank": 92,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 1.0,
"sv_rank": 126,
"hld_value": 2.0,
"hld_rank": 219,
"ip_value": 100.1,
"ip_rank": 105,
"h_value": 92.0,
"h_rank": 108,
"er_value": 43.0,
"er_rank": 118,
"hr_value": 9.0,
"hr_rank": 160,
"bb_value": 33.0,
"bb_rank": 109,
"k_value": 99.0,
"k_rank": 89,
"k_per_9_value": 8.880399,
"k_per_9_rank": 22,
"whip_value": 1.2458,
"whip_rank": null,
"war_value": 0.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9843,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9843,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0135,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0183,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 87,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
}
],
"provenance": {
"prediction": "output/games/20260823_ATL@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_CHC@SEA | away | Shota Imanaga | Shota Imanaga | True | 5.2 | 2.0 | -11 | 2 | 1 | -1 | 5/5 | 1/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.767441860465116,
"WHIP": 1.0883720930232557,
"IP": 143.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.733,
"recent_avg_IP": 5.667,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1665,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0349,
"walk_factor": 0.93,
"homer_factor": 1.0307,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 5.5,
"woba": 0.307,
"xwoba": 0.302,
"barrel_percent": 10.0,
"hard_hit_percent": 35.4,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 104,
"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": "684007",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 10.0,
"R": 10.0,
"H": 24.0,
"BB": 4.0,
"SO": 31.0,
"HR": 7.0,
"BF": 114.0,
"Pitches": 456.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.8,
"BB": 0.8,
"SO": 6.2,
"HR": 1.4,
"BF": 22.8,
"Pitches": 91.2
},
"rates": {
"ERA": 3.1765,
"WHIP": 0.9882,
"ER_per_IP": 0.35294,
"H_per_IP": 0.84706,
"BB_per_IP": 0.14118,
"SO_per_IP": 1.09412,
"HR_per_IP": 0.24706
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 19.0,
"R": 19.0,
"H": 54.0,
"BB": 10.0,
"SO": 56.0,
"HR": 12.0,
"BF": 229.0,
"Pitches": 909.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9,
"R": 1.9,
"H": 5.4,
"BB": 1.0,
"SO": 5.6,
"HR": 1.2,
"BF": 22.9,
"Pitches": 90.9
},
"rates": {
"ERA": 3.0176,
"WHIP": 1.1294,
"ER_per_IP": 0.33529,
"H_per_IP": 0.95294,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.98824,
"HR_per_IP": 0.21176
}
},
"season": {
"games": 25,
"totals": {
"IP": 143.1,
"ER": 60.0,
"R": 61.0,
"H": 124.0,
"BB": 32.0,
"SO": 140.0,
"HR": 29.0,
"BF": 578.0,
"Pitches": 2256.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.44,
"H": 4.96,
"BB": 1.28,
"SO": 5.6,
"HR": 1.16,
"BF": 23.12,
"Pitches": 90.24
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.0884,
"ER_per_IP": 0.4186,
"H_per_IP": 0.86512,
"BB_per_IP": 0.22326,
"SO_per_IP": 0.97674,
"HR_per_IP": 0.20233
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.174,
"predicted_H": 5.112,
"predicted_BB": 1.149,
"predicted_SO": 5.776,
"predicted_HR": 1.206,
"predicted_ERA": 3.4521,
"predicted_WHIP": 1.1049
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.174,
"final": 2.1008,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.112,
"final": 5.0649,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.149,
"final": 1.0864,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.776,
"final": 4.6089,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.206,
"final": 0.699,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4521,
"final": 3.4521,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1049,
"final": 1.1049,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 19,
"H": 54,
"BB": 10,
"SO": 56,
"HR": 12,
"ERA": 3.0176470588235293,
"WHIP": 1.1294117647058823,
"K9": 8.894117647058822,
"HR9": 1.9058823529411764,
"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-17T00:00:00"
},
"recent_form_boost": 0.8389304664399909,
"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": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "684007",
"player_name": "Shota Imanaga",
"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": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 130,
"wins": 74,
"losses": 56,
"win_pct": 0.5692,
"runs_scored": 665.0,
"runs_allowed": 567.0,
"run_differential": 98.0,
"run_differential_per_game": 0.7538,
"avg_runs_scored": 5.1154,
"avg_runs_allowed": 4.3615,
"offense_index": 1.1454,
"defense_index": 1.024,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1167
},
"opponent": {
"team": "SEA",
"games": 130,
"wins": 62,
"losses": 68,
"win_pct": 0.4769,
"runs_scored": 511.0,
"runs_allowed": 555.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3385,
"avg_runs_scored": 3.9308,
"avg_runs_allowed": 4.2692,
"offense_index": 0.8801,
"defense_index": 1.0461,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.0,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0263
},
"edges": {
"quality_edge": 0.143,
"offense_edge": 0.1454,
"opponent_offense_edge": -0.1199,
"defense_strength": 0.024,
"opponent_defense_weakness": -0.0461,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0112,
"run_prevention": 0.9713,
"strikeout": 1.0139
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "684007",
"profile": {
"available": true,
"pitcher_id": "684007",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 553.0,
"k_percent": 24.2,
"bb_percent": 5.5,
"woba": 0.307,
"xwoba": 0.302,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 10.0,
"hard_hit_percent": 35.4,
"avg_best_speed": 77.5632,
"avg_hyper_speed": 93.6988,
"whiff_percent": 29.4,
"swing_percent": 51.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0631,
"command_and_miss": 0.5086,
"regression_edge": 0.1429,
"xwoba_edge": 0.2571,
"barrel_edge": -0.6444,
"hard_hit_edge": 0.3286,
"whiff_edge": 0.5857,
"bb_edge": 0.875,
"pitch_design_score": -0.1912
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "684007",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 86.51101267841268,
"release_spin_rate": 2044.6115045406948,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 86.51101267841268,
"release_spin_rate": 2044.6115045406948,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.511,
"release_spin_rate": 2044.6115,
"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.1912,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.3658,
"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.1665,
"sample_weight": 1.0,
"run_prevention_factor": 0.9858,
"strikeout_factor": 1.0349,
"walk_factor": 0.93,
"homer_factor": 1.0307,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "684007",
"espn_id": 5134630,
"player_name": "Shota Imanaga",
"team": "CHC",
"role": "pitcher",
"espn_rank": 104,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 104,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 25.0,
"gs_rank": 20,
"qs_value": 11.0,
"qs_rank": 36,
"era_value": 3.7674,
"era_rank": 36.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": 327,
"ip_value": 143.1,
"ip_rank": 22,
"h_value": 124.0,
"h_rank": 43,
"er_value": 60.0,
"er_rank": 45,
"hr_value": 29.0,
"hr_rank": 3,
"bb_value": 32.0,
"bb_rank": 119,
"k_value": 140.0,
"k_rank": 27,
"k_per_9_value": 8.790697,
"k_per_9_rank": 33,
"whip_value": 1.0883,
"whip_rank": 14.0,
"war_value": 1.55,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9858,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9858,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.93,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0307,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0349,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260823_CHC@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"
}
} |
| 20260823 | 20260823_CHC@SEA | home | Bryce Miller | Bryce Miller | True | 5.2 | 4.1 | -4 | 1 | 6 | 5 | 2/2 | 0/7 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7137546468401483,
"WHIP": 1.037174721189591,
"IP": 89.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.644,
"recent_avg_IP": 5.267,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5262,
"sample_weight": 1.0,
"run_prevention_factor": 0.9553,
"strikeout_factor": 1.0171,
"walk_factor": 0.922,
"homer_factor": 0.943,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 5.1,
"woba": 0.293,
"xwoba": 0.271,
"barrel_percent": 7.3,
"hard_hit_percent": 33.1,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 128,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 89.2,
"season_ERA": 3.714,
"season_WHIP": 1.037,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.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": "682243",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 21.0,
"R": 22.0,
"H": 29.0,
"BB": 8.0,
"SO": 16.0,
"HR": 6.0,
"BF": 113.0,
"Pitches": 450.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.4,
"H": 5.8,
"BB": 1.6,
"SO": 3.2,
"HR": 1.2,
"BF": 22.6,
"Pitches": 90.0
},
"rates": {
"ERA": 7.1772,
"WHIP": 1.4051,
"ER_per_IP": 0.79747,
"H_per_IP": 1.10127,
"BB_per_IP": 0.3038,
"SO_per_IP": 0.60759,
"HR_per_IP": 0.22785
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 31.0,
"R": 35.0,
"H": 55.0,
"BB": 13.0,
"SO": 51.0,
"HR": 11.0,
"BF": 229.0,
"Pitches": 868.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.5,
"H": 5.5,
"BB": 1.3,
"SO": 5.1,
"HR": 1.1,
"BF": 22.9,
"Pitches": 86.8
},
"rates": {
"ERA": 5.1037,
"WHIP": 1.2439,
"ER_per_IP": 0.56707,
"H_per_IP": 1.0061,
"BB_per_IP": 0.2378,
"SO_per_IP": 0.93293,
"HR_per_IP": 0.20122
}
},
"season": {
"games": 16,
"totals": {
"IP": 89.2,
"ER": 37.0,
"R": 41.0,
"H": 75.0,
"BB": 18.0,
"SO": 87.0,
"HR": 15.0,
"BF": 354.0,
"Pitches": 1360.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3125,
"R": 2.5625,
"H": 4.6875,
"BB": 1.125,
"SO": 5.4375,
"HR": 0.9375,
"BF": 22.125,
"Pitches": 85.0
},
"rates": {
"ERA": 3.7138,
"WHIP": 1.0372,
"ER_per_IP": 0.41264,
"H_per_IP": 0.83643,
"BB_per_IP": 0.20074,
"SO_per_IP": 0.97026,
"HR_per_IP": 0.16729
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.316,
"predicted_H": 5.492,
"predicted_BB": 1.56,
"predicted_SO": 4.538,
"predicted_HR": 1.052,
"predicted_ERA": 5.4631,
"predicted_WHIP": 1.2908
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.316,
"final": 2.2724,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.492,
"final": 3.9185,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.56,
"final": 0.8571,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.538,
"final": 4.7462,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.052,
"final": 0.578,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4631,
"final": 5.4631,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2908,
"final": 1.2908,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 31,
"H": 55,
"BB": 13,
"SO": 51,
"HR": 11,
"ERA": 5.103658536585366,
"WHIP": 1.2439024390243902,
"K9": 8.396341463414634,
"HR9": 1.8109756097560976,
"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.0764690245461601,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 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": "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": 1,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682243",
"player_name": "Bryce Miller",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": "SEA",
"games": 130,
"wins": 62,
"losses": 68,
"win_pct": 0.4769,
"runs_scored": 511.0,
"runs_allowed": 555.0,
"run_differential": -44.0,
"run_differential_per_game": -0.3385,
"avg_runs_scored": 3.9308,
"avg_runs_allowed": 4.2692,
"offense_index": 0.8801,
"defense_index": 1.0461,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.0,
"run_differential": -22.0
},
"available": true,
"quality_score": -0.0263
},
"opponent": {
"team": "CHC",
"games": 130,
"wins": 74,
"losses": 56,
"win_pct": 0.5692,
"runs_scored": 665.0,
"runs_allowed": 567.0,
"run_differential": 98.0,
"run_differential_per_game": 0.7538,
"avg_runs_scored": 5.1154,
"avg_runs_allowed": 4.3615,
"offense_index": 1.1454,
"defense_index": 1.024,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1167
},
"edges": {
"quality_edge": -0.143,
"offense_edge": -0.1199,
"opponent_offense_edge": 0.1454,
"defense_strength": 0.0461,
"opponent_defense_weakness": -0.024,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9898,
"run_prevention": 1.0258,
"strikeout": 0.9841
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682243",
"profile": {
"available": true,
"pitcher_id": "682243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 328.0,
"k_percent": 24.6,
"bb_percent": 5.1,
"woba": 0.293,
"xwoba": 0.271,
"sweet_spot_percent": 29.8,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 33.1,
"avg_best_speed": 77.3448,
"avg_hyper_speed": 92.9466,
"whiff_percent": 25.9,
"swing_percent": 55.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.6451,
"command_and_miss": 0.3793,
"regression_edge": 0.6286,
"xwoba_edge": 1.1429,
"barrel_edge": -0.0444,
"hard_hit_edge": 0.6571,
"whiff_edge": 0.0857,
"bb_edge": 0.975,
"pitch_design_score": 0.0425
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682243",
"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": 90.68499021471726,
"release_spin_rate": 2135.763721660463,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.68499021471726,
"release_spin_rate": 2135.763721660463,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.685,
"release_spin_rate": 2135.7637,
"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.0425,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3038,
"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.5262,
"sample_weight": 1.0,
"run_prevention_factor": 0.9553,
"strikeout_factor": 1.0171,
"walk_factor": 0.922,
"homer_factor": 0.943,
"woba_minus_xwoba": 0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "682243",
"espn_id": 4654313,
"player_name": "Bryce Miller",
"team": "SEA",
"role": "pitcher",
"espn_rank": 128,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 128,
"gp_value": 16.0,
"gp_rank": 414,
"gs_value": 15.0,
"gs_rank": 120,
"qs_value": 3.0,
"qs_rank": 132,
"era_value": 3.7137,
"era_rank": null,
"w_value": 4.0,
"w_rank": 168,
"l_value": 7.0,
"l_rank": 67,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 89.2,
"ip_rank": 128,
"h_value": 75.0,
"h_rank": 141,
"er_value": 37.0,
"er_rank": 143,
"hr_value": 15.0,
"hr_rank": 67,
"bb_value": 18.0,
"bb_rank": 293,
"k_value": 87.0,
"k_rank": 111,
"k_per_9_value": 8.732342,
"k_per_9_rank": 23,
"whip_value": 1.0371,
"whip_rank": null,
"war_value": 1.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9553,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9553,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.922,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.943,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0171,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 78,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +7."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260823_CHC@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"
}
} |
| 20260823 | 20260823_CIN@ARI | away | Andrew Abbott | Andrew Abbott | True | 5.2 | 6.0 | 1 | 3 | 4 | 1 | 6/7 | 2/2 | 2/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.069377990430621,
"WHIP": 1.3995215311004783,
"IP": 139.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.359,
"recent_avg_IP": 5.667,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3514,
"sample_weight": 1.0,
"run_prevention_factor": 1.0299,
"strikeout_factor": 0.9589,
"walk_factor": 1.038,
"homer_factor": 1.0307,
"regression_flag": "neutral",
"k_percent": 17.9,
"bb_percent": 10.9,
"woba": 0.317,
"xwoba": 0.331,
"barrel_percent": 7.7,
"hard_hit_percent": 38.2,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 52,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "671096",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 15.0,
"R": 15.0,
"H": 24.0,
"BB": 16.0,
"SO": 18.0,
"HR": 2.0,
"BF": 123.0,
"Pitches": 477.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 4.8,
"BB": 3.2,
"SO": 3.6,
"HR": 0.4,
"BF": 24.6,
"Pitches": 95.4
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.4118,
"ER_per_IP": 0.52941,
"H_per_IP": 0.84706,
"BB_per_IP": 0.56471,
"SO_per_IP": 0.63529,
"HR_per_IP": 0.07059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 27.0,
"R": 29.0,
"H": 48.0,
"BB": 27.0,
"SO": 44.0,
"HR": 6.0,
"BF": 238.0,
"Pitches": 941.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.9,
"H": 4.8,
"BB": 2.7,
"SO": 4.4,
"HR": 0.6,
"BF": 23.8,
"Pitches": 94.1
},
"rates": {
"ERA": 4.4451,
"WHIP": 1.372,
"ER_per_IP": 0.4939,
"H_per_IP": 0.87805,
"BB_per_IP": 0.4939,
"SO_per_IP": 0.80488,
"HR_per_IP": 0.10976
}
},
"season": {
"games": 26,
"totals": {
"IP": 139.1,
"ER": 63.0,
"R": 67.0,
"H": 129.0,
"BB": 66.0,
"SO": 108.0,
"HR": 18.0,
"BF": 604.0,
"Pitches": 2414.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4231,
"R": 2.5769,
"H": 4.9615,
"BB": 2.5385,
"SO": 4.1538,
"HR": 0.6923,
"BF": 23.2308,
"Pitches": 92.8462
},
"rates": {
"ERA": 4.0694,
"WHIP": 1.3995,
"ER_per_IP": 0.45215,
"H_per_IP": 0.92584,
"BB_per_IP": 0.47368,
"SO_per_IP": 0.77512,
"HR_per_IP": 0.12919
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.765,
"predicted_H": 4.905,
"predicted_BB": 2.739,
"predicted_SO": 4.184,
"predicted_HR": 0.576,
"predicted_ERA": 4.5143,
"predicted_WHIP": 1.3866
}
},
"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.765,
"final": 2.8633,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.905,
"final": 5.3629,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.739,
"final": 2.43,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.184,
"final": 3.2708,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.576,
"final": 0.3351,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5143,
"final": 4.5143,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3866,
"final": 1.3866,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 27,
"H": 48,
"BB": 27,
"SO": 44,
"HR": 6,
"ERA": 4.4451219512195115,
"WHIP": 1.371951219512195,
"K9": 7.24390243902439,
"HR9": 0.9878048780487804,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 1.0055848782046966,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 2.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": "671096",
"player_name": "Andrew Abbott",
"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": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 130,
"wins": 62,
"losses": 68,
"win_pct": 0.4769,
"runs_scored": 534.0,
"runs_allowed": 626.0,
"run_differential": -92.0,
"run_differential_per_game": -0.7077,
"avg_runs_scored": 4.1077,
"avg_runs_allowed": 4.8154,
"offense_index": 0.9198,
"defense_index": 0.9275,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1418
},
"opponent": {
"team": "ARI",
"games": 130,
"wins": 68,
"losses": 62,
"win_pct": 0.5231,
"runs_scored": 593.0,
"runs_allowed": 586.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0538,
"avg_runs_scored": 4.5615,
"avg_runs_allowed": 4.5077,
"offense_index": 1.0214,
"defense_index": 0.9908,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.4,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0087
},
"edges": {
"quality_edge": -0.1331,
"offense_edge": -0.0802,
"opponent_offense_edge": 0.0214,
"defense_strength": -0.0725,
"opponent_defense_weakness": 0.0092,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9916,
"run_prevention": 1.0173,
"strikeout": 0.9943
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671096",
"profile": {
"available": true,
"pitcher_id": "671096",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 545.0,
"k_percent": 17.9,
"bb_percent": 10.9,
"woba": 0.317,
"xwoba": 0.331,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 38.2,
"avg_best_speed": 79.4913,
"avg_hyper_speed": 94.0547,
"whiff_percent": 22.4,
"swing_percent": 46.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.2952,
"command_and_miss": -0.5164,
"regression_edge": -0.4,
"xwoba_edge": -0.5714,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.4143,
"bb_edge": -0.475,
"pitch_design_score": -0.1476
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671096",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 87.28908796539285,
"release_spin_rate": 2447.345837540214,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 87.28908796539285,
"release_spin_rate": 2447.345837540214,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2891,
"release_spin_rate": 2447.3458,
"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.1476,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0546,
"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.3514,
"sample_weight": 1.0,
"run_prevention_factor": 1.0299,
"strikeout_factor": 0.9589,
"walk_factor": 1.038,
"homer_factor": 1.0307,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671096",
"espn_id": 4414528,
"player_name": "Andrew Abbott",
"team": "CIN",
"role": "pitcher",
"espn_rank": 52,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 52,
"gp_value": 26.0,
"gp_rank": 231,
"gs_value": 26.0,
"gs_rank": 7,
"qs_value": 11.0,
"qs_rank": 36,
"era_value": 4.0693,
"era_rank": 43.0,
"w_value": 6.0,
"w_rank": 92,
"l_value": 8.0,
"l_rank": 34,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 139.1,
"ip_rank": 31,
"h_value": 129.0,
"h_rank": 27,
"er_value": 63.0,
"er_rank": 28,
"hr_value": 18.0,
"hr_rank": 36,
"bb_value": 66.0,
"bb_rank": 2,
"k_value": 108.0,
"k_rank": 72,
"k_per_9_value": 6.9760766,
"k_per_9_rank": 62,
"whip_value": 1.3995,
"whip_rank": 51.0,
"war_value": 2.28,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0299,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0299,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.038,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0307,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9589,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260823_CIN@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"
}
} |
| 20260823 | 20260823_CIN@ARI | home | Mitch Bratt | Mitch Bratt | True | 5.1 | 3.0 | -7 | 1 | 3 | 2 | 2/5 | 1/3 | 2/3 | Last 10 before this game (8 available){
"model_context": {
"embedded_season": {
"ERA": 4.172727272727273,
"WHIP": 1.4727272727272729,
"IP": 36.2,
"games_started": null,
"games_pitched": 8,
"role_avg_IP": 4.583,
"recent_avg_IP": 5.2,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1555,
"sample_weight": 0.564,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9478,
"walk_factor": 1.0541,
"homer_factor": 1.0016,
"regression_flag": "positive_pitcher_regression",
"k_percent": 15.7,
"bb_percent": 13.8,
"woba": 0.342,
"xwoba": 0.311,
"barrel_percent": 8.1,
"hard_hit_percent": 35.1,
"whiff_percent": 15.6
},
"espn_rank": {
"rank": 278,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6818181818181818,
"last_10": 0.3181818181818182
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683352",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 8,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 11.0,
"R": 11.0,
"H": 19.0,
"BB": 16.0,
"SO": 18.0,
"HR": 2.0,
"BF": 108.0,
"Pitches": 409.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 3.8,
"BB": 3.2,
"SO": 3.6,
"HR": 0.4,
"BF": 21.6,
"Pitches": 81.8
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.3462,
"ER_per_IP": 0.42308,
"H_per_IP": 0.73077,
"BB_per_IP": 0.61538,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 8,
"totals": {
"IP": 36.2,
"ER": 17.0,
"R": 17.0,
"H": 32.0,
"BB": 22.0,
"SO": 25.0,
"HR": 5.0,
"BF": 159.0,
"Pitches": 605.0
},
"per_game": {
"IP": 4.2,
"ER": 2.125,
"R": 2.125,
"H": 4.0,
"BB": 2.75,
"SO": 3.125,
"HR": 0.625,
"BF": 19.875,
"Pitches": 75.625
},
"rates": {
"ERA": 4.1727,
"WHIP": 1.4727,
"ER_per_IP": 0.46364,
"H_per_IP": 0.87273,
"BB_per_IP": 0.6,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 8,
"totals": {
"IP": 36.2,
"ER": 17.0,
"R": 17.0,
"H": 32.0,
"BB": 22.0,
"SO": 25.0,
"HR": 5.0,
"BF": 159.0,
"Pitches": 605.0
},
"per_game": {
"IP": 4.2,
"ER": 2.125,
"R": 2.125,
"H": 4.0,
"BB": 2.75,
"SO": 3.125,
"HR": 0.625,
"BF": 19.875,
"Pitches": 75.625
},
"rates": {
"ERA": 4.1727,
"WHIP": 1.4727,
"ER_per_IP": 0.46364,
"H_per_IP": 0.87273,
"BB_per_IP": 0.6,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.13636
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.341,
"predicted_H": 4.324,
"predicted_BB": 2.623,
"predicted_SO": 4.002,
"predicted_HR": 0.588,
"predicted_ERA": 4.1519,
"predicted_WHIP": 1.3689
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5125,
"form_weight": 0.4875,
"form_reliability": 0.6154,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.341,
"final": 1.6537,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.324,
"final": 3.133,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.623,
"final": 1.7912,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.002,
"final": 2.976,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.588,
"final": 0.7991,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1519,
"final": 4.1519,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3689,
"final": 1.3689,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 36.2,
"ER": 17,
"H": 32,
"BB": 22,
"SO": 25,
"HR": 5,
"ERA": 4.172727272727272,
"WHIP": 1.4727272727272724,
"K9": 6.136363636363636,
"HR9": 1.227272727272727,
"games_pitched": 8,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 8,
"error_prone": false
},
"games_count": 8,
"latest_game_date": "2026-08-17T00:00:00"
},
"recent_form_boost": 0.9774598782046966,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6154,
"prior_weight": 0.3846
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683352",
"player_name": "Mitch Bratt",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 130,
"wins": 68,
"losses": 62,
"win_pct": 0.5231,
"runs_scored": 593.0,
"runs_allowed": 586.0,
"run_differential": 7.0,
"run_differential_per_game": 0.0538,
"avg_runs_scored": 4.5615,
"avg_runs_allowed": 4.5077,
"offense_index": 1.0214,
"defense_index": 0.9908,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.4,
"run_differential": -7.0
},
"available": true,
"quality_score": -0.0087
},
"opponent": {
"team": "CIN",
"games": 130,
"wins": 62,
"losses": 68,
"win_pct": 0.4769,
"runs_scored": 534.0,
"runs_allowed": 626.0,
"run_differential": -92.0,
"run_differential_per_game": -0.7077,
"avg_runs_scored": 4.1077,
"avg_runs_allowed": 4.8154,
"offense_index": 0.9198,
"defense_index": 0.9275,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 5.3,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1418
},
"edges": {
"quality_edge": 0.1331,
"offense_edge": 0.0214,
"opponent_offense_edge": -0.0802,
"defense_strength": -0.0092,
"opponent_defense_weakness": 0.0725,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0083,
"run_prevention": 0.9814,
"strikeout": 1.0104
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683352",
"profile": {
"available": true,
"pitcher_id": "683352",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 141.0,
"k_percent": 15.7,
"bb_percent": 13.8,
"woba": 0.342,
"xwoba": 0.311,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 35.1,
"avg_best_speed": 76.8029,
"avg_hyper_speed": 93.0179,
"whiff_percent": 15.6,
"swing_percent": 47.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0944,
"command_and_miss": -1.1429,
"regression_edge": 0.8857,
"xwoba_edge": 0.0,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.3714,
"whiff_edge": -1.3857,
"bb_edge": -1.2,
"pitch_design_score": -0.1793
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683352",
"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": 86.72449759488674,
"release_spin_rate": 2288.606582229385,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 86.72449759488674,
"release_spin_rate": 2288.606582229385,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.7245,
"release_spin_rate": 2288.6066,
"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.1793,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2804,
"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.1555,
"sample_weight": 0.564,
"run_prevention_factor": 1.0132,
"strikeout_factor": 0.9478,
"walk_factor": 1.0541,
"homer_factor": 1.0016,
"woba_minus_xwoba": 0.031,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "683352",
"espn_id": 5123768,
"player_name": "Mitch Bratt",
"team": "ARI",
"role": "pitcher",
"espn_rank": 278,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 278,
"gp_value": 8.0,
"gp_rank": 529,
"gs_value": 8.0,
"gs_rank": 177,
"qs_value": 2.0,
"qs_rank": 151,
"era_value": 4.1727,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 2.0,
"l_rank": 296,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 36.2,
"ip_rank": 361,
"h_value": 32.0,
"h_rank": 361,
"er_value": 17.0,
"er_rank": 332,
"hr_value": 5.0,
"hr_rank": 285,
"bb_value": 22.0,
"bb_rank": 223,
"k_value": 25.0,
"k_rank": 425,
"k_per_9_value": 6.1363635,
"k_per_9_rank": 31,
"whip_value": 1.4727,
"whip_rank": null,
"war_value": 0.37,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0074,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0074,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0305,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0009,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9706,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 8 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260823_CIN@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"
}
} |
| 20260823 | 20260823_CLE@COL | away | Foster Griffin | Foster Griffin | True | 5.2 | 5.0 | -2 | 1 | 2 | 1 | 2/5 | 3/3 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.18013856812933,
"WHIP": 1.1085450346420322,
"IP": 144.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.773,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0697,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.9903,
"walk_factor": 0.936,
"homer_factor": 1.043,
"regression_flag": "neutral",
"k_percent": 22.2,
"bb_percent": 5.9,
"woba": 0.301,
"xwoba": 0.315,
"barrel_percent": 9.2,
"hard_hit_percent": 38.1,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 14,
"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": "656492",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 16.0,
"R": 18.0,
"H": 31.0,
"BB": 8.0,
"SO": 20.0,
"HR": 6.0,
"BF": 116.0,
"Pitches": 458.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.6,
"H": 6.2,
"BB": 1.6,
"SO": 4.0,
"HR": 1.2,
"BF": 23.2,
"Pitches": 91.6
},
"rates": {
"ERA": 5.3333,
"WHIP": 1.4444,
"ER_per_IP": 0.59259,
"H_per_IP": 1.14815,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.74074,
"HR_per_IP": 0.22222
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.1,
"ER": 20.0,
"R": 23.0,
"H": 55.0,
"BB": 12.0,
"SO": 51.0,
"HR": 8.0,
"BF": 242.0,
"Pitches": 954.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.3,
"H": 5.5,
"BB": 1.2,
"SO": 5.1,
"HR": 0.8,
"BF": 24.2,
"Pitches": 95.4
},
"rates": {
"ERA": 2.9834,
"WHIP": 1.1105,
"ER_per_IP": 0.33149,
"H_per_IP": 0.9116,
"BB_per_IP": 0.1989,
"SO_per_IP": 0.8453,
"HR_per_IP": 0.1326
}
},
"season": {
"games": 25,
"totals": {
"IP": 144.1,
"ER": 51.0,
"R": 58.0,
"H": 125.0,
"BB": 35.0,
"SO": 131.0,
"HR": 23.0,
"BF": 589.0,
"Pitches": 2326.0
},
"per_game": {
"IP": 5.2,
"ER": 2.04,
"R": 2.32,
"H": 5.0,
"BB": 1.4,
"SO": 5.24,
"HR": 0.92,
"BF": 23.56,
"Pitches": 93.04
},
"rates": {
"ERA": 3.1801,
"WHIP": 1.1085,
"ER_per_IP": 0.35335,
"H_per_IP": 0.86605,
"BB_per_IP": 0.24249,
"SO_per_IP": 0.90762,
"HR_per_IP": 0.15935
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.602,
"predicted_H": 5.658,
"predicted_BB": 1.526,
"predicted_SO": 4.703,
"predicted_HR": 0.977,
"predicted_ERA": 4.1536,
"predicted_WHIP": 1.2739
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.602,
"final": 1.9285,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.658,
"final": 4.1201,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.526,
"final": 2.1457,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.703,
"final": 5.2483,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.977,
"final": 0.9867,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1536,
"final": 4.1536,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2739,
"final": 1.2739,
"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": 20,
"H": 55,
"BB": 12,
"SO": 51,
"HR": 8,
"ERA": 2.983425414364641,
"WHIP": 1.1104972375690607,
"K9": 7.607734806629834,
"HR9": 1.1933701657458564,
"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-18T00:00:00"
},
"recent_form_boost": 0.8341860311185243,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "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": 1,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656492",
"player_name": "Foster Griffin",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"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": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 129,
"wins": 63,
"losses": 66,
"win_pct": 0.4884,
"runs_scored": 516.0,
"runs_allowed": 531.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1163,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1163,
"offense_index": 0.8914,
"defense_index": 1.0902,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.1,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0241
},
"opponent": {
"team": "COL",
"games": 128,
"wins": 50,
"losses": 78,
"win_pct": 0.3906,
"runs_scored": 612.0,
"runs_allowed": 742.0,
"run_differential": -130.0,
"run_differential_per_game": -1.0156,
"avg_runs_scored": 4.7812,
"avg_runs_allowed": 5.7969,
"offense_index": 1.0654,
"defense_index": 0.7741,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.4,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2525
},
"edges": {
"quality_edge": 0.2284,
"offense_edge": -0.1086,
"opponent_offense_edge": 0.0654,
"defense_strength": 0.0902,
"opponent_defense_weakness": 0.2259,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0092,
"run_prevention": 0.99,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656492",
"profile": {
"available": true,
"pitcher_id": "656492",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 563.0,
"k_percent": 22.2,
"bb_percent": 5.9,
"woba": 0.301,
"xwoba": 0.315,
"sweet_spot_percent": 37.1,
"barrel_batted_rate": 9.2,
"hard_hit_percent": 38.1,
"avg_best_speed": 75.8595,
"avg_hyper_speed": 94.1556,
"whiff_percent": 23.7,
"swing_percent": 48.3
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5495,
"avg_hyper_speed": 93.8839,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0552,
"command_and_miss": 0.075,
"regression_edge": -0.4,
"xwoba_edge": -0.1143,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.2429,
"bb_edge": 0.8,
"pitch_design_score": -0.2288
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656492",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 85.83486199103383,
"release_spin_rate": 2157.645721489828,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.83486199103383,
"release_spin_rate": 2157.645721489828,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8349,
"release_spin_rate": 2157.6457,
"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.2288,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6341,
"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.0697,
"sample_weight": 1.0,
"run_prevention_factor": 1.0059,
"strikeout_factor": 0.9903,
"walk_factor": 0.936,
"homer_factor": 1.043,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656492",
"espn_id": 33773,
"player_name": "Foster Griffin",
"team": "CLE",
"role": "pitcher",
"espn_rank": 14,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 14,
"gp_value": 25.0,
"gp_rank": 253,
"gs_value": 25.0,
"gs_rank": 19,
"qs_value": 13.0,
"qs_rank": 18,
"era_value": 3.1801,
"era_rank": 13.0,
"w_value": 14.0,
"w_rank": 3,
"l_value": 4.0,
"l_rank": 153,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 324,
"ip_value": 144.1,
"ip_rank": 20,
"h_value": 125.0,
"h_rank": 36,
"er_value": 51.0,
"er_rank": 78,
"hr_value": 23.0,
"hr_rank": 14,
"bb_value": 35.0,
"bb_rank": 91,
"k_value": 131.0,
"k_rank": 36,
"k_per_9_value": 8.1685915,
"k_per_9_rank": 48,
"whip_value": 1.1085,
"whip_rank": 16.0,
"war_value": 3.48,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0059,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0059,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.936,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.043,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9903,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 95,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260823_CLE@COL.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"
}
} |
| 20260823 | 20260823_CLE@COL | home | Tomoyuki Sugano | Tomoyuki Sugano | True | 5.2 | 3.0 | -8 | 6 | 5 | -1 | 7/9 | 2/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.702247191011236,
"WHIP": 1.2640449438202246,
"IP": 118.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.394,
"recent_avg_IP": 5.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -1.1749,
"sample_weight": 1.0,
"run_prevention_factor": 1.0999,
"strikeout_factor": 0.9114,
"walk_factor": 0.926,
"homer_factor": 1.22,
"regression_flag": "negative_pitcher_regression",
"k_percent": 13.9,
"bb_percent": 5.4,
"woba": 0.353,
"xwoba": 0.395,
"barrel_percent": 13.5,
"hard_hit_percent": 43.8,
"whiff_percent": 18.2
},
"espn_rank": {
"rank": 74,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608372",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 14.0,
"R": 15.0,
"H": 29.0,
"BB": 4.0,
"SO": 18.0,
"HR": 8.0,
"BF": 116.0,
"Pitches": 443.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 3.0,
"H": 5.8,
"BB": 0.8,
"SO": 3.6,
"HR": 1.6,
"BF": 23.2,
"Pitches": 88.6
},
"rates": {
"ERA": 4.5,
"WHIP": 1.1786,
"ER_per_IP": 0.5,
"H_per_IP": 1.03571,
"BB_per_IP": 0.14286,
"SO_per_IP": 0.64286,
"HR_per_IP": 0.28571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 34.0,
"R": 37.0,
"H": 61.0,
"BB": 9.0,
"SO": 33.0,
"HR": 15.0,
"BF": 233.0,
"Pitches": 880.0
},
"per_game": {
"IP": 5.2,
"ER": 3.4,
"R": 3.7,
"H": 6.1,
"BB": 0.9,
"SO": 3.3,
"HR": 1.5,
"BF": 23.3,
"Pitches": 88.0
},
"rates": {
"ERA": 5.5301,
"WHIP": 1.2651,
"ER_per_IP": 0.61446,
"H_per_IP": 1.10241,
"BB_per_IP": 0.16265,
"SO_per_IP": 0.59639,
"HR_per_IP": 0.27108
}
},
"season": {
"games": 22,
"totals": {
"IP": 118.2,
"ER": 62.0,
"R": 65.0,
"H": 123.0,
"BB": 27.0,
"SO": 69.0,
"HR": 26.0,
"BF": 498.0,
"Pitches": 1900.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8182,
"R": 2.9545,
"H": 5.5909,
"BB": 1.2273,
"SO": 3.1364,
"HR": 1.1818,
"BF": 22.6364,
"Pitches": 86.3636
},
"rates": {
"ERA": 4.7022,
"WHIP": 1.264,
"ER_per_IP": 0.52247,
"H_per_IP": 1.03652,
"BB_per_IP": 0.22753,
"SO_per_IP": 0.58146,
"HR_per_IP": 0.2191
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.012,
"predicted_H": 5.857,
"predicted_BB": 1.143,
"predicted_SO": 3.798,
"predicted_HR": 1.376,
"predicted_ERA": 4.8305,
"predicted_WHIP": 1.2473
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 3.012,
"final": 4.2916,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.857,
"final": 6.3465,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.143,
"final": 1.51,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.798,
"final": 3.8845,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.376,
"final": 1.6432,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8305,
"final": 4.8305,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2473,
"final": 1.2473,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 34,
"H": 61,
"BB": 9,
"SO": 33,
"HR": 15,
"ERA": 5.530120481927711,
"WHIP": 1.2650602409638556,
"K9": 5.367469879518072,
"HR9": 2.4397590361445785,
"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-17T00:00:00"
},
"recent_form_boost": 1.1245533013042397,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608372",
"player_name": "Tomoyuki Sugano",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 6.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": "COL",
"games": 128,
"wins": 50,
"losses": 78,
"win_pct": 0.3906,
"runs_scored": 612.0,
"runs_allowed": 742.0,
"run_differential": -130.0,
"run_differential_per_game": -1.0156,
"avg_runs_scored": 4.7812,
"avg_runs_allowed": 5.7969,
"offense_index": 1.0654,
"defense_index": 0.7741,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 6.4,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.2525
},
"opponent": {
"team": "CLE",
"games": 129,
"wins": 63,
"losses": 66,
"win_pct": 0.4884,
"runs_scored": 516.0,
"runs_allowed": 531.0,
"run_differential": -15.0,
"run_differential_per_game": -0.1163,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1163,
"offense_index": 0.8914,
"defense_index": 1.0902,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.1,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0241
},
"edges": {
"quality_edge": -0.2284,
"offense_edge": 0.0654,
"opponent_offense_edge": -0.1086,
"defense_strength": -0.2259,
"opponent_defense_weakness": -0.0902,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9884,
"run_prevention": 1.0166,
"strikeout": 1.0018
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608372",
"profile": {
"available": true,
"pitcher_id": "608372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 463.0,
"k_percent": 13.9,
"bb_percent": 5.4,
"woba": 0.353,
"xwoba": 0.395,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 13.5,
"hard_hit_percent": 43.8,
"avg_best_speed": 80.4927,
"avg_hyper_speed": 95.1644,
"whiff_percent": 18.2,
"swing_percent": 46.2
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5495,
"avg_hyper_speed": 93.8839,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": -1.5417,
"command_and_miss": -0.7086,
"regression_edge": -1.2,
"xwoba_edge": -2.4,
"barrel_edge": -1.4222,
"hard_hit_edge": -0.8714,
"whiff_edge": -1.0286,
"bb_edge": 0.925,
"pitch_design_score": -0.0916
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608372",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.28380805083835,
"release_spin_rate": 2297.377125414763,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 88.28380805083835,
"release_spin_rate": 2297.377125414763,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2838,
"release_spin_rate": 2297.3771,
"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.0916,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6545,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -1.1749,
"sample_weight": 1.0,
"run_prevention_factor": 1.0999,
"strikeout_factor": 0.9114,
"walk_factor": 0.926,
"homer_factor": 1.22,
"woba_minus_xwoba": -0.042,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "608372",
"espn_id": 4142423,
"player_name": "Tomoyuki Sugano",
"team": "COL",
"role": "pitcher",
"espn_rank": 74,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 74,
"gp_value": 22.0,
"gp_rank": 329,
"gs_value": 22.0,
"gs_rank": 68,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 4.7022,
"era_rank": null,
"w_value": 12.0,
"w_rank": 11,
"l_value": 6.0,
"l_rank": 94,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 324,
"ip_value": 118.2,
"ip_rank": 77,
"h_value": 123.0,
"h_rank": 44,
"er_value": 62.0,
"er_rank": 33,
"hr_value": 26.0,
"hr_rank": 6,
"bb_value": 27.0,
"bb_rank": 168,
"k_value": 69.0,
"k_rank": 158,
"k_per_9_value": 5.233146,
"k_per_9_rank": 55,
"whip_value": 1.264,
"whip_rank": null,
"war_value": 1.95,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0999,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0999,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.926,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.2,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9114,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 26,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260823_CLE@COL.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"
}
} |
| 20260823 | 20260823_DET@KC | away | Jacob Waguespack | Jacob Waguespack | True | 5.0 | 1.1 | -11 | 0 | 2 | 2 | 2/1 | 0/1 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.9518072289156625,
"WHIP": 0.8313253012048193,
"IP": 27.2,
"games_started": null,
"games_pitched": 21,
"role_avg_IP": 1.317,
"recent_avg_IP": 1.4,
"last_start_IP": 0.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2019,
"sample_weight": 0.45,
"run_prevention_factor": 0.9828,
"strikeout_factor": 0.9797,
"walk_factor": 0.9946,
"homer_factor": 0.9487,
"regression_flag": "neutral",
"k_percent": 15.0,
"bb_percent": 8.4,
"woba": 0.241,
"xwoba": 0.269,
"barrel_percent": 4.9,
"hard_hit_percent": 30.9,
"whiff_percent": 24.6
},
"espn_rank": {
"rank": 172,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 27.2,
"season_ERA": 1.952,
"season_WHIP": 0.831,
"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": 5.544,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5258,
"prior_weight": 0.4742
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "621097",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 21,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 2.0,
"SO": 2.0,
"HR": 2.0,
"BF": 27.0,
"Pitches": 95.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.4,
"H": 0.8,
"BB": 0.4,
"SO": 0.4,
"HR": 0.4,
"BF": 5.4,
"Pitches": 19.0
},
"rates": {
"ERA": 2.5714,
"WHIP": 0.8571,
"ER_per_IP": 0.28571,
"H_per_IP": 0.57143,
"BB_per_IP": 0.28571,
"SO_per_IP": 0.28571,
"HR_per_IP": 0.28571
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 13.1,
"ER": 4.0,
"R": 5.0,
"H": 6.0,
"BB": 5.0,
"SO": 6.0,
"HR": 3.0,
"BF": 50.0,
"Pitches": 182.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.5,
"H": 0.6,
"BB": 0.5,
"SO": 0.6,
"HR": 0.3,
"BF": 5.0,
"Pitches": 18.2
},
"rates": {
"ERA": 2.7,
"WHIP": 0.825,
"ER_per_IP": 0.3,
"H_per_IP": 0.45,
"BB_per_IP": 0.375,
"SO_per_IP": 0.45,
"HR_per_IP": 0.225
}
},
"season": {
"games": 21,
"totals": {
"IP": 27.2,
"ER": 6.0,
"R": 7.0,
"H": 14.0,
"BB": 9.0,
"SO": 16.0,
"HR": 5.0,
"BF": 107.0,
"Pitches": 386.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2857,
"R": 0.3333,
"H": 0.6667,
"BB": 0.4286,
"SO": 0.7619,
"HR": 0.2381,
"BF": 5.0952,
"Pitches": 18.381
},
"rates": {
"ERA": 1.9518,
"WHIP": 0.8313,
"ER_per_IP": 0.21687,
"H_per_IP": 0.50602,
"BB_per_IP": 0.3253,
"SO_per_IP": 0.57831,
"HR_per_IP": 0.18072
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.178,
"predicted_H": 2.252,
"predicted_BB": 1.06,
"predicted_SO": 2.03,
"predicted_HR": 0.609,
"predicted_ERA": 3.4524,
"predicted_WHIP": 1.0779
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5503,
"form_weight": 0.4497,
"form_reliability": 0.5258,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.544,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5258,
"prior_weight": 0.4742
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.178,
"final": 0.5297,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.252,
"final": 2.1133,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.06,
"final": 0.4766,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.03,
"final": 4.7652,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.609,
"final": 0.2738,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4524,
"final": 3.4524,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0779,
"final": 1.0779,
"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.1,
"ER": 4,
"H": 6,
"BB": 5,
"SO": 6,
"HR": 3,
"ERA": 2.6999999999999997,
"WHIP": 0.825,
"K9": 4.05,
"HR9": 2.025,
"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-19T00:00:00"
},
"recent_form_boost": 0.9111418015747488,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.544,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5258,
"prior_weight": 0.4742
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "621097",
"player_name": "Jacob Waguespack",
"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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.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": 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": 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": 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": 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": "DET",
"games": 129,
"wins": 61,
"losses": 68,
"win_pct": 0.4729,
"runs_scored": 580.0,
"runs_allowed": 503.0,
"run_differential": 77.0,
"run_differential_per_game": 0.5969,
"avg_runs_scored": 4.4961,
"avg_runs_allowed": 3.8992,
"offense_index": 1.0053,
"defense_index": 1.147,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0546
},
"opponent": {
"team": "KC",
"games": 131,
"wins": 57,
"losses": 74,
"win_pct": 0.4351,
"runs_scored": 549.0,
"runs_allowed": 644.0,
"run_differential": -95.0,
"run_differential_per_game": -0.7252,
"avg_runs_scored": 4.1908,
"avg_runs_allowed": 4.916,
"offense_index": 0.9371,
"defense_index": 0.9097,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.1,
"run_differential": 17.0
},
"available": true,
"quality_score": -0.0393
},
"edges": {
"quality_edge": -0.0153,
"offense_edge": 0.0053,
"opponent_offense_edge": -0.0629,
"defense_strength": 0.147,
"opponent_defense_weakness": 0.0903,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.976,
"strikeout": 1.0046
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621097",
"profile": {
"available": true,
"pitcher_id": "621097",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 102.0,
"k_percent": 15.0,
"bb_percent": 8.4,
"woba": 0.241,
"xwoba": 0.269,
"sweet_spot_percent": 23.5,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 30.9,
"avg_best_speed": 74.4471,
"avg_hyper_speed": 93.254,
"whiff_percent": 24.6,
"swing_percent": 49.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 1.1709,
"command_and_miss": -0.4679,
"regression_edge": -0.8,
"xwoba_edge": 1.2,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.9714,
"whiff_edge": -0.1,
"bb_edge": 0.15,
"pitch_design_score": -0.0672
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621097",
"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": 88.72595259963467,
"release_spin_rate": 1976.1986715096496,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.72595259963467,
"release_spin_rate": 1976.1986715096496,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.726,
"release_spin_rate": 1976.1987,
"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.0672,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4798,
"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.2019,
"sample_weight": 0.45,
"run_prevention_factor": 0.9828,
"strikeout_factor": 0.9797,
"walk_factor": 0.9946,
"homer_factor": 0.9487,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621097",
"espn_id": 37726,
"player_name": "Jacob Waguespack",
"team": "DET",
"role": "pitcher",
"espn_rank": 172,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 172,
"gp_value": 21.0,
"gp_rank": 345,
"gs_value": 0.0,
"gs_rank": 345,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 1.9518,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 1.0,
"l_rank": 397,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 3.0,
"hld_rank": 194,
"ip_value": 27.2,
"ip_rank": 425,
"h_value": 14.0,
"h_rank": 546,
"er_value": 6.0,
"er_rank": 595,
"hr_value": 5.0,
"hr_rank": 285,
"bb_value": 9.0,
"bb_rank": 475,
"k_value": 16.0,
"k_rank": 498,
"k_per_9_value": 5.204819,
"k_per_9_rank": 31,
"whip_value": 0.8313,
"whip_rank": null,
"war_value": 0.93,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9923,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9923,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9976,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9769,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9909,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 69,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260823_DET@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_DET@KC | home | Daniel Lynch IV | Daniel Lynch IV | True | 5.0 | 4.1 | -2 | 0 | 2 | 2 | 0/4 | 2/1 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8333333333333335,
"WHIP": 1.0185185185185186,
"IP": 54.0,
"games_started": null,
"games_pitched": 49,
"role_avg_IP": 2.667,
"recent_avg_IP": 2.667,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1529,
"sample_weight": 0.784,
"run_prevention_factor": 0.987,
"strikeout_factor": 0.9937,
"walk_factor": 0.9733,
"homer_factor": 0.9612,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.8,
"bb_percent": 7.3,
"woba": 0.26,
"xwoba": 0.295,
"barrel_percent": 5.7,
"hard_hit_percent": 35.8,
"whiff_percent": 27.3
},
"espn_rank": {
"rank": 167,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 54.0,
"season_ERA": 2.833,
"season_WHIP": 1.019,
"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": 10.82,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6839,
"prior_weight": 0.3161
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663738",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 49,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 10.0,
"ER": 7.0,
"R": 8.0,
"H": 10.0,
"BB": 4.0,
"SO": 7.0,
"HR": 2.0,
"BF": 43.0,
"Pitches": 140.0
},
"per_game": {
"IP": 2.0,
"ER": 1.4,
"R": 1.6,
"H": 2.0,
"BB": 0.8,
"SO": 1.4,
"HR": 0.4,
"BF": 8.6,
"Pitches": 28.0
},
"rates": {
"ERA": 6.3,
"WHIP": 1.4,
"ER_per_IP": 0.7,
"H_per_IP": 1.0,
"BB_per_IP": 0.4,
"SO_per_IP": 0.7,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 15.2,
"ER": 7.0,
"R": 8.0,
"H": 15.0,
"BB": 4.0,
"SO": 8.0,
"HR": 2.0,
"BF": 64.0,
"Pitches": 214.0
},
"per_game": {
"IP": 1.2,
"ER": 0.7,
"R": 0.8,
"H": 1.5,
"BB": 0.4,
"SO": 0.8,
"HR": 0.2,
"BF": 6.4,
"Pitches": 21.4
},
"rates": {
"ERA": 4.0213,
"WHIP": 1.2128,
"ER_per_IP": 0.44681,
"H_per_IP": 0.95745,
"BB_per_IP": 0.25532,
"SO_per_IP": 0.51064,
"HR_per_IP": 0.12766
}
},
"season": {
"games": 49,
"totals": {
"IP": 54.0,
"ER": 17.0,
"R": 21.0,
"H": 39.0,
"BB": 16.0,
"SO": 41.0,
"HR": 4.0,
"BF": 218.0,
"Pitches": 794.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3469,
"R": 0.4286,
"H": 0.7959,
"BB": 0.3265,
"SO": 0.8367,
"HR": 0.0816,
"BF": 4.449,
"Pitches": 16.2041
},
"rates": {
"ERA": 2.8333,
"WHIP": 1.0185,
"ER_per_IP": 0.31481,
"H_per_IP": 0.72222,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.75926,
"HR_per_IP": 0.07407
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.542,
"predicted_H": 2.776,
"predicted_BB": 1.003,
"predicted_SO": 2.181,
"predicted_HR": 0.439,
"predicted_ERA": 4.7167,
"predicted_WHIP": 1.2843
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4836,
"form_weight": 0.5164,
"form_reliability": 0.6839,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.82,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6839,
"prior_weight": 0.3161
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.542,
"final": 0.7964,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 2.776,
"final": 1.4337,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.003,
"final": 1.4851,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.181,
"final": 3.0606,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.439,
"final": 0.2267,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7167,
"final": 4.7167,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2843,
"final": 1.2843,
"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": 15.2,
"ER": 7,
"H": 15,
"BB": 4,
"SO": 8,
"HR": 2,
"ERA": 4.021276595744681,
"WHIP": 1.2127659574468086,
"K9": 4.595744680851064,
"HR9": 1.148936170212766,
"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-18T00:00:00"
},
"recent_form_boost": 0.9764652331951249,
"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": 0.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.82,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6839,
"prior_weight": 0.3161
}
},
{
"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": 0,
"predicted_H": 0,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0,
"predicted_H": 0,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663738",
"player_name": "Daniel Lynch IV",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 0.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 131,
"wins": 57,
"losses": 74,
"win_pct": 0.4351,
"runs_scored": 549.0,
"runs_allowed": 644.0,
"run_differential": -95.0,
"run_differential_per_game": -0.7252,
"avg_runs_scored": 4.1908,
"avg_runs_allowed": 4.916,
"offense_index": 0.9371,
"defense_index": 0.9097,
"current_streak": "W7",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 3.1,
"run_differential": 17.0
},
"available": true,
"quality_score": -0.0393
},
"opponent": {
"team": "DET",
"games": 129,
"wins": 61,
"losses": 68,
"win_pct": 0.4729,
"runs_scored": 580.0,
"runs_allowed": 503.0,
"run_differential": 77.0,
"run_differential_per_game": 0.5969,
"avg_runs_scored": 4.4961,
"avg_runs_allowed": 3.8992,
"offense_index": 1.0053,
"defense_index": 1.147,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.7,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.0546
},
"edges": {
"quality_edge": 0.0153,
"offense_edge": -0.0629,
"opponent_offense_edge": 0.0053,
"defense_strength": -0.0903,
"opponent_defense_weakness": -0.147,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 0.9977,
"run_prevention": 1.0091,
"strikeout": 1.0
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663738",
"profile": {
"available": true,
"pitcher_id": "663738",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 196.0,
"k_percent": 18.8,
"bb_percent": 7.3,
"woba": 0.26,
"xwoba": 0.295,
"sweet_spot_percent": 31.4,
"barrel_batted_rate": 5.7,
"hard_hit_percent": 35.8,
"avg_best_speed": 76.9849,
"avg_hyper_speed": 93.6966,
"whiff_percent": 27.3,
"swing_percent": 47.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.543,
"command_and_miss": -0.0336,
"regression_edge": -1.0,
"xwoba_edge": 0.4571,
"barrel_edge": 0.3111,
"hard_hit_edge": 0.2714,
"whiff_edge": 0.2857,
"bb_edge": 0.425,
"pitch_design_score": -0.0047
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663738",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 21,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 21,
"pitch_usage": 0.0,
"release_speed": 89.84074399946635,
"release_spin_rate": 2100.4592606198853,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 21,
"pitch_usage": 0.0,
"release_speed": 89.84074399946635,
"release_spin_rate": 2100.4592606198853,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8407,
"release_spin_rate": 2100.4593,
"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.0047,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0339,
"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.1529,
"sample_weight": 0.784,
"run_prevention_factor": 0.987,
"strikeout_factor": 0.9937,
"walk_factor": 0.9733,
"homer_factor": 0.9612,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663738",
"espn_id": 41227,
"player_name": "Daniel Lynch IV",
"team": "KC",
"role": "pitcher",
"espn_rank": 167,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 167,
"gp_value": 49.0,
"gp_rank": 79,
"gs_value": 3.0,
"gs_rank": 241,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 2.8333,
"era_rank": null,
"w_value": 4.0,
"w_rank": 168,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 1.0,
"sv_rank": 126,
"hld_value": 13.0,
"hld_rank": 38,
"ip_value": 54.0,
"ip_rank": 233,
"h_value": 39.0,
"h_rank": 299,
"er_value": 17.0,
"er_rank": 332,
"hr_value": 4.0,
"hr_rank": 343,
"bb_value": 16.0,
"bb_rank": 332,
"k_value": 41.0,
"k_rank": 314,
"k_per_9_value": 6.8333335,
"k_per_9_rank": 36,
"whip_value": 1.0185,
"whip_rank": null,
"war_value": 0.95,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9898,
"adjusted": 4
},
"predicted_H": {
"original": 4.0,
"factor": 0.9898,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9791,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9696,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9951,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 0,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 71,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260823_DET@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_LAA@TEX | away | Yusei Kikuchi | Yusei Kikuchi | True | 4.1 | 5.0 | 2 | 4 | 5 | 1 | 6/7 | 4/1 | 3/4 | Last 10 before this game (7 available){
"model_context": {
"embedded_season": {
"ERA": 5.806451612903226,
"WHIP": 1.5806451612903225,
"IP": 31.0,
"games_started": null,
"games_pitched": 7,
"role_avg_IP": 4.429,
"recent_avg_IP": 4.267,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1665,
"sample_weight": 0.532,
"run_prevention_factor": 1.0142,
"strikeout_factor": 1.0049,
"walk_factor": 1.0096,
"homer_factor": 1.0414,
"regression_flag": "neutral",
"k_percent": 23.2,
"bb_percent": 9.9,
"woba": 0.347,
"xwoba": 0.34,
"barrel_percent": 8.5,
"hard_hit_percent": 42.6,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 524,
"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": "579328",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 7,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.1,
"ER": 13.0,
"R": 13.0,
"H": 21.0,
"BB": 9.0,
"SO": 25.0,
"HR": 2.0,
"BF": 94.0,
"Pitches": 390.0
},
"per_game": {
"IP": 4.1,
"ER": 2.6,
"R": 2.6,
"H": 4.2,
"BB": 1.8,
"SO": 5.0,
"HR": 0.4,
"BF": 18.8,
"Pitches": 78.0
},
"rates": {
"ERA": 5.4844,
"WHIP": 1.4062,
"ER_per_IP": 0.60938,
"H_per_IP": 0.98438,
"BB_per_IP": 0.42188,
"SO_per_IP": 1.17188,
"HR_per_IP": 0.09375
}
},
"last_10": {
"games": 7,
"totals": {
"IP": 31.0,
"ER": 20.0,
"R": 20.0,
"H": 35.0,
"BB": 14.0,
"SO": 33.0,
"HR": 3.0,
"BF": 142.0,
"Pitches": 567.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8571,
"R": 2.8571,
"H": 5.0,
"BB": 2.0,
"SO": 4.7143,
"HR": 0.4286,
"BF": 20.2857,
"Pitches": 81.0
},
"rates": {
"ERA": 5.8065,
"WHIP": 1.5806,
"ER_per_IP": 0.64516,
"H_per_IP": 1.12903,
"BB_per_IP": 0.45161,
"SO_per_IP": 1.06452,
"HR_per_IP": 0.09677
}
},
"season": {
"games": 7,
"totals": {
"IP": 31.0,
"ER": 20.0,
"R": 20.0,
"H": 35.0,
"BB": 14.0,
"SO": 33.0,
"HR": 3.0,
"BF": 142.0,
"Pitches": 567.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8571,
"R": 2.8571,
"H": 5.0,
"BB": 2.0,
"SO": 4.7143,
"HR": 0.4286,
"BF": 20.2857,
"Pitches": 81.0
},
"rates": {
"ERA": 5.8065,
"WHIP": 1.5806,
"ER_per_IP": 0.64516,
"H_per_IP": 1.12903,
"BB_per_IP": 0.45161,
"SO_per_IP": 1.06452,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.468,
"predicted_H": 4.333,
"predicted_BB": 1.747,
"predicted_SO": 4.61,
"predicted_HR": 0.506,
"predicted_ERA": 5.1258,
"predicted_WHIP": 1.4031
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5261,
"form_weight": 0.4739,
"form_reliability": 0.5833,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5833,
"prior_weight": 0.4167
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.468,
"final": 2.2218,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.333,
"final": 5.2099,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.747,
"final": 2.9322,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.61,
"final": 3.237,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.506,
"final": 0.2398,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1258,
"final": 5.1258,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4031,
"final": 1.4031,
"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": 31.0,
"ER": 20,
"H": 35,
"BB": 14,
"SO": 33,
"HR": 3,
"ERA": 5.806451612903227,
"WHIP": 1.5806451612903227,
"K9": 9.580645161290324,
"HR9": 0.870967741935484,
"games_pitched": 7,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 7,
"error_prone": false
},
"games_count": 7,
"latest_game_date": "2026-04-29T00:00:00"
},
"recent_form_boost": 1.1639518136885678,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_BB": 4.0,
"predicted_SO": 2.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": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "579328",
"player_name": "Yusei Kikuchi",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"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": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": 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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "LAA",
"games": 130,
"wins": 52,
"losses": 78,
"win_pct": 0.4,
"runs_scored": 534.0,
"runs_allowed": 602.0,
"run_differential": -68.0,
"run_differential_per_game": -0.5231,
"avg_runs_scored": 4.1077,
"avg_runs_allowed": 4.6308,
"offense_index": 0.9145,
"defense_index": 0.97,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 2.1,
"run_differential": 25.0
},
"available": true,
"quality_score": -0.114
},
"opponent": {
"team": "TEX",
"games": 130,
"wins": 64,
"losses": 66,
"win_pct": 0.4923,
"runs_scored": 516.0,
"runs_allowed": 564.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3692,
"avg_runs_scored": 3.9692,
"avg_runs_allowed": 4.3385,
"offense_index": 0.8836,
"defense_index": 1.0354,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 3.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.0868
},
"edges": {
"quality_edge": -0.0272,
"offense_edge": -0.0855,
"opponent_offense_edge": -0.1164,
"defense_strength": -0.03,
"opponent_defense_weakness": -0.0354,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0027,
"run_prevention": 0.9857,
"strikeout": 1.0085
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "579328",
"profile": {
"available": true,
"pitcher_id": "579328",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 133.0,
"k_percent": 23.2,
"bb_percent": 9.9,
"woba": 0.347,
"xwoba": 0.34,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 42.6,
"avg_best_speed": 78.6672,
"avg_hyper_speed": 95.2562,
"whiff_percent": 25.9,
"swing_percent": 48.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.6135,
"command_and_miss": 0.0493,
"regression_edge": 0.2,
"xwoba_edge": -0.8286,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.7,
"whiff_edge": 0.0857,
"bb_edge": -0.225,
"pitch_design_score": -0.0286
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"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.41511193541719,
"release_spin_rate": 2188.872593972776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.41511193541719,
"release_spin_rate": 2188.872593972776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4151,
"release_spin_rate": 2188.8726,
"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.0286,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2042,
"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.1665,
"sample_weight": 0.532,
"run_prevention_factor": 1.0142,
"strikeout_factor": 1.0049,
"walk_factor": 1.0096,
"homer_factor": 1.0414,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "579328",
"espn_id": 41415,
"player_name": "Yusei Kikuchi",
"team": "LAA",
"role": "pitcher",
"espn_rank": 524,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 524,
"gp_value": 7.0,
"gp_rank": 557,
"gs_value": 7.0,
"gs_rank": 189,
"qs_value": 1.0,
"qs_rank": 173,
"era_value": 5.8064,
"era_rank": null,
"w_value": 0.0,
"w_rank": 500,
"l_value": 3.0,
"l_rank": 216,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 31.0,
"ip_rank": 402,
"h_value": 35.0,
"h_rank": 332,
"er_value": 20.0,
"er_rank": 283,
"hr_value": 3.0,
"hr_rank": 406,
"bb_value": 14.0,
"bb_rank": 366,
"k_value": 33.0,
"k_rank": 368,
"k_per_9_value": 9.580646,
"k_per_9_rank": 24,
"whip_value": 1.5806,
"whip_rank": null,
"war_value": -0.04,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0076,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0076,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0051,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.022,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0026,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 89,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260823_LAA@TEX.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"
}
} |
| 20260823 | 20260823_LAA@TEX | home | Cal Quantrill | Cal Quantrill | True | 5.2 | 6.0 | 1 | 2 | 0 | -2 | 3/6 | 5/0 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.128755364806867,
"WHIP": 1.1459227467811157,
"IP": 77.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.926,
"recent_avg_IP": 5.467,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1341,
"sample_weight": 1.0,
"run_prevention_factor": 1.0114,
"strikeout_factor": 0.9297,
"walk_factor": 0.956,
"homer_factor": 0.9891,
"regression_flag": "neutral",
"k_percent": 16.7,
"bb_percent": 6.8,
"woba": 0.286,
"xwoba": 0.312,
"barrel_percent": 7.5,
"hard_hit_percent": 34.4,
"whiff_percent": 18.5
},
"espn_rank": {
"rank": 176,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 77.2,
"season_ERA": 3.129,
"season_WHIP": 1.146,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7568,
"prior_weight": 0.2432
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "615698",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 3.0,
"R": 5.0,
"H": 14.0,
"BB": 5.0,
"SO": 22.0,
"HR": 1.0,
"BF": 93.0,
"Pitches": 342.0
},
"per_game": {
"IP": 5.0,
"ER": 0.6,
"R": 1.0,
"H": 2.8,
"BB": 1.0,
"SO": 4.4,
"HR": 0.2,
"BF": 18.6,
"Pitches": 68.4
},
"rates": {
"ERA": 1.1096,
"WHIP": 0.7808,
"ER_per_IP": 0.12329,
"H_per_IP": 0.57534,
"BB_per_IP": 0.20548,
"SO_per_IP": 0.90411,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 14.0,
"R": 17.0,
"H": 37.0,
"BB": 12.0,
"SO": 34.0,
"HR": 5.0,
"BF": 189.0,
"Pitches": 683.0
},
"per_game": {
"IP": 4.2,
"ER": 1.4,
"R": 1.7,
"H": 3.7,
"BB": 1.2,
"SO": 3.4,
"HR": 0.5,
"BF": 18.9,
"Pitches": 68.3
},
"rates": {
"ERA": 2.7194,
"WHIP": 1.0576,
"ER_per_IP": 0.30216,
"H_per_IP": 0.79856,
"BB_per_IP": 0.25899,
"SO_per_IP": 0.73381,
"HR_per_IP": 0.10791
}
},
"season": {
"games": 26,
"totals": {
"IP": 77.2,
"ER": 27.0,
"R": 33.0,
"H": 67.0,
"BB": 22.0,
"SO": 54.0,
"HR": 9.0,
"BF": 323.0,
"Pitches": 1215.0
},
"per_game": {
"IP": 3.0,
"ER": 1.0385,
"R": 1.2692,
"H": 2.5769,
"BB": 0.8462,
"SO": 2.0769,
"HR": 0.3462,
"BF": 12.4231,
"Pitches": 46.7308
},
"rates": {
"ERA": 3.1288,
"WHIP": 1.1459,
"ER_per_IP": 0.34764,
"H_per_IP": 0.86266,
"BB_per_IP": 0.28326,
"SO_per_IP": 0.69528,
"HR_per_IP": 0.11588
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.416,
"predicted_H": 3.697,
"predicted_BB": 1.292,
"predicted_SO": 3.999,
"predicted_HR": 0.459,
"predicted_ERA": 2.6703,
"predicted_WHIP": 1.0456
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4528,
"form_weight": 0.5472,
"form_reliability": 0.7568,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7568,
"prior_weight": 0.2432
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 4.2,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.416,
"final": 1.2277,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.697,
"final": 3.3814,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.292,
"final": 2.9708,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.999,
"final": 3.9995,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.459,
"final": 0.2512,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6703,
"final": 2.6703,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0456,
"final": 1.0456,
"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.1,
"ER": 14,
"H": 37,
"BB": 12,
"SO": 34,
"HR": 5,
"ERA": 2.719424460431655,
"WHIP": 1.0575539568345325,
"K9": 6.604316546762591,
"HR9": 0.9712230215827339,
"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-18T00:00:00"
},
"recent_form_boost": 0.8035839789241213,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.562,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7568,
"prior_weight": 0.2432
}
},
{
"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": 1,
"predicted_H": 3,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "615698",
"player_name": "Cal Quantrill",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"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": "TEX",
"games": 130,
"wins": 64,
"losses": 66,
"win_pct": 0.4923,
"runs_scored": 516.0,
"runs_allowed": 564.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3692,
"avg_runs_scored": 3.9692,
"avg_runs_allowed": 4.3385,
"offense_index": 0.8836,
"defense_index": 1.0354,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 3.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.0868
},
"opponent": {
"team": "LAA",
"games": 130,
"wins": 52,
"losses": 78,
"win_pct": 0.4,
"runs_scored": 534.0,
"runs_allowed": 602.0,
"run_differential": -68.0,
"run_differential_per_game": -0.5231,
"avg_runs_scored": 4.1077,
"avg_runs_allowed": 4.6308,
"offense_index": 0.9145,
"defense_index": 0.97,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 2.1,
"run_differential": 25.0
},
"available": true,
"quality_score": -0.114
},
"edges": {
"quality_edge": 0.0272,
"offense_edge": -0.1164,
"opponent_offense_edge": -0.0855,
"defense_strength": 0.0354,
"opponent_defense_weakness": 0.03,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0056,
"run_prevention": 0.9814,
"strikeout": 1.0077
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "615698",
"profile": {
"available": true,
"pitcher_id": "615698",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 285.0,
"k_percent": 16.7,
"bb_percent": 6.8,
"woba": 0.286,
"xwoba": 0.312,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 34.4,
"avg_best_speed": 77.8945,
"avg_hyper_speed": 93.5201,
"whiff_percent": 18.5,
"swing_percent": 47.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.1649,
"command_and_miss": -0.5836,
"regression_edge": -0.7429,
"xwoba_edge": -0.0286,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.9714,
"bb_edge": 0.55,
"pitch_design_score": -0.0059
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "615698",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 89.81945726484963,
"release_spin_rate": 1952.6205613647526,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 89.81945726484963,
"release_spin_rate": 1952.6205613647526,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8195,
"release_spin_rate": 1952.6206,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0059,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0424,
"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.1341,
"sample_weight": 1.0,
"run_prevention_factor": 1.0114,
"strikeout_factor": 0.9297,
"walk_factor": 0.956,
"homer_factor": 0.9891,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "615698",
"espn_id": 39875,
"player_name": "Cal Quantrill",
"team": "TEX",
"role": "pitcher",
"espn_rank": 176,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 176,
"gp_value": 26.0,
"gp_rank": 231,
"gs_value": 9.0,
"gs_rank": 171,
"qs_value": 3.0,
"qs_rank": 132,
"era_value": 3.1287,
"era_rank": null,
"w_value": 5.0,
"w_rank": 117,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 77.2,
"ip_rank": 147,
"h_value": 67.0,
"h_rank": 156,
"er_value": 27.0,
"er_rank": 195,
"hr_value": 9.0,
"hr_rank": 160,
"bb_value": 22.0,
"bb_rank": 223,
"k_value": 54.0,
"k_rank": 231,
"k_per_9_value": 6.25751,
"k_per_9_rank": 42,
"whip_value": 1.1459,
"whip_rank": null,
"war_value": 0.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0114,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0114,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9891,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9297,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260823_LAA@TEX.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"
}
} |
| 20260823 | 20260823_MIN@SD | away | Bailey Ober | Bailey Ober | True | 5.1 | 5.0 | -1 | 2 | 1 | -1 | 6/4 | 2/3 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.616129032258065,
"WHIP": 1.2483870967741937,
"IP": 103.1,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.439,
"recent_avg_IP": 5.267,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3691,
"sample_weight": 1.0,
"run_prevention_factor": 1.0314,
"strikeout_factor": 0.9337,
"walk_factor": 0.94,
"homer_factor": 1.0596,
"regression_flag": "neutral",
"k_percent": 16.3,
"bb_percent": 6.0,
"woba": 0.324,
"xwoba": 0.333,
"barrel_percent": 10.1,
"hard_hit_percent": 35.5,
"whiff_percent": 19.6
},
"espn_rank": {
"rank": 139,
"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": "641927",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 16.0,
"R": 17.0,
"H": 32.0,
"BB": 5.0,
"SO": 13.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 6.4,
"BB": 1.0,
"SO": 2.6,
"HR": 0.8,
"BF": 22.8,
"Pitches": 87.2
},
"rates": {
"ERA": 5.4684,
"WHIP": 1.4051,
"ER_per_IP": 0.60759,
"H_per_IP": 1.21519,
"BB_per_IP": 0.18987,
"SO_per_IP": 0.49367,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 33.0,
"R": 35.0,
"H": 65.0,
"BB": 11.0,
"SO": 32.0,
"HR": 12.0,
"BF": 226.0,
"Pitches": 854.0
},
"per_game": {
"IP": 5.0,
"ER": 3.3,
"R": 3.5,
"H": 6.5,
"BB": 1.1,
"SO": 3.2,
"HR": 1.2,
"BF": 22.6,
"Pitches": 85.4
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.4805,
"ER_per_IP": 0.64286,
"H_per_IP": 1.26623,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.62338,
"HR_per_IP": 0.23377
}
},
"season": {
"games": 19,
"totals": {
"IP": 103.1,
"ER": 53.0,
"R": 56.0,
"H": 103.0,
"BB": 26.0,
"SO": 71.0,
"HR": 17.0,
"BF": 435.0,
"Pitches": 1630.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7895,
"R": 2.9474,
"H": 5.4211,
"BB": 1.3684,
"SO": 3.7368,
"HR": 0.8947,
"BF": 22.8947,
"Pitches": 85.7895
},
"rates": {
"ERA": 4.6161,
"WHIP": 1.2484,
"ER_per_IP": 0.5129,
"H_per_IP": 0.99677,
"BB_per_IP": 0.25161,
"SO_per_IP": 0.6871,
"HR_per_IP": 0.16452
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.042,
"predicted_H": 5.998,
"predicted_BB": 1.275,
"predicted_SO": 3.432,
"predicted_HR": 0.921,
"predicted_ERA": 5.2231,
"predicted_WHIP": 1.3878
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.042,
"final": 2.5856,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.998,
"final": 5.9989,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.275,
"final": 1.5926,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.432,
"final": 4.5568,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.921,
"final": 0.9556,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2231,
"final": 5.2231,
"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": 51.1,
"ER": 33,
"H": 65,
"BB": 11,
"SO": 32,
"HR": 12,
"ERA": 5.7857142857142865,
"WHIP": 1.4805194805194806,
"K9": 5.6103896103896105,
"HR9": 2.103896103896104,
"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-17T00:00:00"
},
"recent_form_boost": 1.159115722360541,
"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": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 1.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": "641927",
"player_name": "Bailey Ober",
"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": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 130,
"wins": 63,
"losses": 67,
"win_pct": 0.4846,
"runs_scored": 599.0,
"runs_allowed": 646.0,
"run_differential": -47.0,
"run_differential_per_game": -0.3615,
"avg_runs_scored": 4.6077,
"avg_runs_allowed": 4.9692,
"offense_index": 1.0317,
"defense_index": 0.8987,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.3,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0926
},
"opponent": {
"team": "SD",
"games": 130,
"wins": 70,
"losses": 60,
"win_pct": 0.5385,
"runs_scored": 556.0,
"runs_allowed": 547.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0692,
"avg_runs_scored": 4.2769,
"avg_runs_allowed": 4.2077,
"offense_index": 0.9577,
"defense_index": 1.0614,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.1,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1112
},
"edges": {
"quality_edge": -0.2038,
"offense_edge": 0.0317,
"opponent_offense_edge": -0.0423,
"defense_strength": -0.1013,
"opponent_defense_weakness": -0.0614,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9905,
"run_prevention": 1.0136,
"strikeout": 0.9973
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 414.0,
"k_percent": 16.3,
"bb_percent": 6.0,
"woba": 0.324,
"xwoba": 0.333,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 35.5,
"avg_best_speed": 77.6039,
"avg_hyper_speed": 93.9099,
"whiff_percent": 19.6,
"swing_percent": 48.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.3345,
"command_and_miss": -0.5143,
"regression_edge": -0.2571,
"xwoba_edge": -0.6286,
"barrel_edge": -0.6667,
"hard_hit_edge": 0.3143,
"whiff_edge": -0.8143,
"bb_edge": 0.75,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"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": 83.5963763862264,
"release_spin_rate": 2149.5821400593873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 83.5963763862264,
"release_spin_rate": 2149.5821400593873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 83.5964,
"release_spin_rate": 2149.5821,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.3691,
"sample_weight": 1.0,
"run_prevention_factor": 1.0314,
"strikeout_factor": 0.9337,
"walk_factor": 0.94,
"homer_factor": 1.0596,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641927",
"espn_id": 3107919,
"player_name": "Bailey Ober",
"team": "MIN",
"role": "pitcher",
"espn_rank": 139,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 139,
"gp_value": 19.0,
"gp_rank": 372,
"gs_value": 19.0,
"gs_rank": 95,
"qs_value": 6.0,
"qs_rank": 82,
"era_value": 4.6161,
"era_rank": null,
"w_value": 7.0,
"w_rank": 70,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 103.1,
"ip_rank": 100,
"h_value": 103.0,
"h_rank": 87,
"er_value": 53.0,
"er_rank": 71,
"hr_value": 17.0,
"hr_rank": 48,
"bb_value": 26.0,
"bb_rank": 179,
"k_value": 71.0,
"k_rank": 156,
"k_per_9_value": 6.183871,
"k_per_9_rank": 42,
"whip_value": 1.2483,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0314,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0314,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.94,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0596,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9337,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260823_MIN@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"
}
} |
| 20260823 | 20260823_MIN@SD | home | Walker Buehler | Walker Buehler | True | 5.0 | 6.0 | 3 | 3 | 1 | -2 | 6/4 | 1/0 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.786703601108034,
"WHIP": 1.3878116343490305,
"IP": 120.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.813,
"recent_avg_IP": 5.133,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.192,
"sample_weight": 1.0,
"run_prevention_factor": 1.0163,
"strikeout_factor": 0.96,
"walk_factor": 1.01,
"homer_factor": 1.0306,
"regression_flag": "neutral",
"k_percent": 20.1,
"bb_percent": 9.5,
"woba": 0.325,
"xwoba": 0.318,
"barrel_percent": 8.1,
"hard_hit_percent": 38.9,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 242,
"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": "621111",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 9.0,
"R": 10.0,
"H": 23.0,
"BB": 9.0,
"SO": 20.0,
"HR": 2.0,
"BF": 106.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.0,
"H": 4.6,
"BB": 1.8,
"SO": 4.0,
"HR": 0.4,
"BF": 21.2,
"Pitches": 86.2
},
"rates": {
"ERA": 3.1558,
"WHIP": 1.2468,
"ER_per_IP": 0.35065,
"H_per_IP": 0.8961,
"BB_per_IP": 0.35065,
"SO_per_IP": 0.77922,
"HR_per_IP": 0.07792
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.2,
"ER": 32.0,
"R": 33.0,
"H": 45.0,
"BB": 26.0,
"SO": 39.0,
"HR": 9.0,
"BF": 210.0,
"Pitches": 838.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.3,
"H": 4.5,
"BB": 2.6,
"SO": 3.9,
"HR": 0.9,
"BF": 21.0,
"Pitches": 83.8
},
"rates": {
"ERA": 6.042,
"WHIP": 1.4895,
"ER_per_IP": 0.67133,
"H_per_IP": 0.94406,
"BB_per_IP": 0.54545,
"SO_per_IP": 0.81818,
"HR_per_IP": 0.18881
}
},
"season": {
"games": 25,
"totals": {
"IP": 120.1,
"ER": 64.0,
"R": 65.0,
"H": 118.0,
"BB": 49.0,
"SO": 104.0,
"HR": 14.0,
"BF": 518.0,
"Pitches": 2061.0
},
"per_game": {
"IP": 4.2,
"ER": 2.56,
"R": 2.6,
"H": 4.72,
"BB": 1.96,
"SO": 4.16,
"HR": 0.56,
"BF": 20.72,
"Pitches": 82.44
},
"rates": {
"ERA": 4.7867,
"WHIP": 1.3878,
"ER_per_IP": 0.53186,
"H_per_IP": 0.98061,
"BB_per_IP": 0.4072,
"SO_per_IP": 0.86427,
"HR_per_IP": 0.11634
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.422,
"predicted_H": 4.542,
"predicted_BB": 2.034,
"predicted_SO": 4.037,
"predicted_HR": 0.622,
"predicted_ERA": 4.4963,
"predicted_WHIP": 1.3568
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.422,
"final": 2.665,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.542,
"final": 5.155,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.034,
"final": 1.5993,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.037,
"final": 3.601,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.622,
"final": 0.3605,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4963,
"final": 4.4963,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3568,
"final": 1.3568,
"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": 32,
"H": 45,
"BB": 26,
"SO": 39,
"HR": 9,
"ERA": 6.0419580419580425,
"WHIP": 1.4895104895104896,
"K9": 7.363636363636364,
"HR9": 1.6993006993006994,
"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-17T00:00:00"
},
"recent_form_boost": 1.1881679201627389,
"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": 1.0,
"predicted_SO": 3.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": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.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": 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": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "SD",
"games": 130,
"wins": 70,
"losses": 60,
"win_pct": 0.5385,
"runs_scored": 556.0,
"runs_allowed": 547.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0692,
"avg_runs_scored": 4.2769,
"avg_runs_allowed": 4.2077,
"offense_index": 0.9577,
"defense_index": 1.0614,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.1,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1112
},
"opponent": {
"team": "MIN",
"games": 130,
"wins": 63,
"losses": 67,
"win_pct": 0.4846,
"runs_scored": 599.0,
"runs_allowed": 646.0,
"run_differential": -47.0,
"run_differential_per_game": -0.3615,
"avg_runs_scored": 4.6077,
"avg_runs_allowed": 4.9692,
"offense_index": 1.0317,
"defense_index": 0.8987,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.3,
"run_differential": -16.0
},
"available": true,
"quality_score": -0.0926
},
"edges": {
"quality_edge": 0.2038,
"offense_edge": -0.0423,
"opponent_offense_edge": 0.0317,
"defense_strength": 0.0614,
"opponent_defense_weakness": 0.1013,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0087,
"run_prevention": 0.9887,
"strikeout": 1.0036
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 20.1,
"bb_percent": 9.5,
"woba": 0.325,
"xwoba": 0.318,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 38.9,
"avg_best_speed": 78.9184,
"avg_hyper_speed": 94.0819,
"whiff_percent": 20.4,
"swing_percent": 44.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1884,
"command_and_miss": -0.405,
"regression_edge": 0.2,
"xwoba_edge": -0.2,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.1714,
"whiff_edge": -0.7,
"bb_edge": -0.125,
"pitch_design_score": -0.0151
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.65623446258957,
"release_spin_rate": 2200.5600592952596,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 89.65623446258957,
"release_spin_rate": 2200.5600592952596,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6562,
"release_spin_rate": 2200.5601,
"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.0151,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1077,
"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.192,
"sample_weight": 1.0,
"run_prevention_factor": 1.0163,
"strikeout_factor": 0.96,
"walk_factor": 1.01,
"homer_factor": 1.0306,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621111",
"espn_id": 39251,
"player_name": "Walker Buehler",
"team": "SD",
"role": "pitcher",
"espn_rank": 242,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 242,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 25.0,
"gs_rank": 20,
"qs_value": 5.0,
"qs_rank": 99,
"era_value": 4.7867,
"era_rank": null,
"w_value": 7.0,
"w_rank": 70,
"l_value": 6.0,
"l_rank": 94,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 120.1,
"ip_rank": 76,
"h_value": 118.0,
"h_rank": 57,
"er_value": 64.0,
"er_rank": 25,
"hr_value": 14.0,
"hr_rank": 84,
"bb_value": 49.0,
"bb_rank": 21,
"k_value": 104.0,
"k_rank": 77,
"k_per_9_value": 7.7783937,
"k_per_9_rank": 27,
"whip_value": 1.3878,
"whip_rank": null,
"war_value": 0.53,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0163,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0163,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.01,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0306,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.96,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"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/20260823_MIN@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"
}
} |
| 20260823 | 20260823_NYM@CHW | away | Nolan McLean | Nolan McLean | True | 5.2 | 6.0 | 1 | 3 | 0 | -3 | 5/1 | 4/4 | 8/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.343457943925234,
"WHIP": 1.1565420560747663,
"IP": 142.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.707,
"recent_avg_IP": 5.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2364,
"sample_weight": 1.0,
"run_prevention_factor": 0.9799,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 0.9739,
"regression_flag": "neutral",
"k_percent": 27.3,
"bb_percent": 9.1,
"woba": 0.291,
"xwoba": 0.298,
"barrel_percent": 6.9,
"hard_hit_percent": 35.7,
"whiff_percent": 24.6
},
"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": 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": "690997",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 11.0,
"R": 13.0,
"H": 28.0,
"BB": 13.0,
"SO": 27.0,
"HR": 5.0,
"BF": 125.0,
"Pitches": 477.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.6,
"H": 5.6,
"BB": 2.6,
"SO": 5.4,
"HR": 1.0,
"BF": 25.0,
"Pitches": 95.4
},
"rates": {
"ERA": 3.375,
"WHIP": 1.3977,
"ER_per_IP": 0.375,
"H_per_IP": 0.95455,
"BB_per_IP": 0.44318,
"SO_per_IP": 0.92045,
"HR_per_IP": 0.17045
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.1,
"ER": 19.0,
"R": 24.0,
"H": 52.0,
"BB": 22.0,
"SO": 65.0,
"HR": 7.0,
"BF": 250.0,
"Pitches": 959.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.4,
"H": 5.2,
"BB": 2.2,
"SO": 6.5,
"HR": 0.7,
"BF": 25.0,
"Pitches": 95.9
},
"rates": {
"ERA": 2.882,
"WHIP": 1.2472,
"ER_per_IP": 0.32022,
"H_per_IP": 0.8764,
"BB_per_IP": 0.37079,
"SO_per_IP": 1.09551,
"HR_per_IP": 0.11798
}
},
"season": {
"games": 25,
"totals": {
"IP": 142.2,
"ER": 53.0,
"R": 64.0,
"H": 111.0,
"BB": 54.0,
"SO": 162.0,
"HR": 15.0,
"BF": 594.0,
"Pitches": 2359.0
},
"per_game": {
"IP": 5.2,
"ER": 2.12,
"R": 2.56,
"H": 4.44,
"BB": 2.16,
"SO": 6.48,
"HR": 0.6,
"BF": 23.76,
"Pitches": 94.36
},
"rates": {
"ERA": 3.3435,
"WHIP": 1.1565,
"ER_per_IP": 0.3715,
"H_per_IP": 0.77804,
"BB_per_IP": 0.3785,
"SO_per_IP": 1.13551,
"HR_per_IP": 0.10514
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.235,
"predicted_H": 5.333,
"predicted_BB": 2.347,
"predicted_SO": 5.959,
"predicted_HR": 0.828,
"predicted_ERA": 3.4163,
"predicted_WHIP": 1.3041
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.235,
"final": 2.5566,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.333,
"final": 5.193,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.347,
"final": 3.042,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.959,
"final": 6.8171,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.828,
"final": 0.9003,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4163,
"final": 3.4163,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3041,
"final": 1.3041,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.1,
"ER": 19,
"H": 52,
"BB": 22,
"SO": 65,
"HR": 7,
"ERA": 2.8820224719101124,
"WHIP": 1.2471910112359552,
"K9": 9.859550561797754,
"HR9": 1.0617977528089888,
"games_pitched": 10,
"quality_starts": 8,
"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-17T00:00:00"
},
"recent_form_boost": 0.8266171815754833,
"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": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690997",
"player_name": "Nolan McLean",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": "NYM",
"games": 130,
"wins": 59,
"losses": 71,
"win_pct": 0.4538,
"runs_scored": 545.0,
"runs_allowed": 584.0,
"run_differential": -39.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1923,
"avg_runs_allowed": 4.4923,
"offense_index": 0.9365,
"defense_index": 0.9965,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0411
},
"opponent": {
"team": "CHW",
"games": 129,
"wins": 67,
"losses": 62,
"win_pct": 0.5194,
"runs_scored": 616.0,
"runs_allowed": 574.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3256,
"avg_runs_scored": 4.7752,
"avg_runs_allowed": 4.4496,
"offense_index": 1.0667,
"defense_index": 1.0061,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0565
},
"edges": {
"quality_edge": -0.0976,
"offense_edge": -0.0635,
"opponent_offense_edge": 0.0667,
"defense_strength": -0.0035,
"opponent_defense_weakness": -0.0061,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9933,
"run_prevention": 1.0159,
"strikeout": 0.9917
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690997",
"profile": {
"available": true,
"pitcher_id": "690997",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 563.0,
"k_percent": 27.3,
"bb_percent": 9.1,
"woba": 0.291,
"xwoba": 0.298,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.208,
"avg_hyper_speed": 93.661,
"whiff_percent": 24.6,
"swing_percent": 44.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.3152,
"command_and_miss": 0.2879,
"regression_edge": -0.2,
"xwoba_edge": 0.3714,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.2857,
"whiff_edge": -0.1,
"bb_edge": -0.025,
"pitch_design_score": 0.0636
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "690997",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 93,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 91.06194841259298,
"release_spin_rate": 2497.02888222752,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 93,
"pitch_usage": 0.0,
"release_speed": 91.06194841259298,
"release_spin_rate": 2497.02888222752,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0619,
"release_spin_rate": 2497.0289,
"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.0636,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4546,
"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.2364,
"sample_weight": 1.0,
"run_prevention_factor": 0.9799,
"strikeout_factor": 1.0251,
"walk_factor": 1.002,
"homer_factor": 0.9739,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690997",
"espn_id": 4433874,
"player_name": "Nolan McLean",
"team": "NYM",
"role": "pitcher",
"espn_rank": 72,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 72,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 25.0,
"gs_rank": 20,
"qs_value": 15.0,
"qs_rank": 11,
"era_value": 3.3434,
"era_rank": 19.0,
"w_value": 9.0,
"w_rank": 28,
"l_value": 8.0,
"l_rank": 34,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 142.2,
"ip_rank": 25,
"h_value": 111.0,
"h_rank": 77,
"er_value": 53.0,
"er_rank": 71,
"hr_value": 15.0,
"hr_rank": 67,
"bb_value": 54.0,
"bb_rank": 14,
"k_value": 162.0,
"k_rank": 10,
"k_per_9_value": 10.219626,
"k_per_9_rank": 10,
"whip_value": 1.1565,
"whip_rank": 25.0,
"war_value": 1.98,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9799,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9799,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9739,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0251,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 102,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260823_NYM@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"
}
} |
| 20260823 | 20260823_NYM@CHW | home | Sean Newcomb | Sean Newcomb | True | 6.0 | 2.0 | -12 | 0 | 0 | 0 | 2/2 | 1/0 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.442857142857143,
"WHIP": 1.0714285714285714,
"IP": 70.0,
"games_started": null,
"games_pitched": 46,
"role_avg_IP": 2.111,
"recent_avg_IP": 2.111,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.085,
"sample_weight": 1.0,
"run_prevention_factor": 0.9928,
"strikeout_factor": 0.9971,
"walk_factor": 1.01,
"homer_factor": 0.9603,
"regression_flag": "negative_pitcher_regression",
"k_percent": 22.6,
"bb_percent": 9.5,
"woba": 0.265,
"xwoba": 0.304,
"barrel_percent": 5.4,
"hard_hit_percent": 37.1,
"whiff_percent": 24.4
},
"espn_rank": {
"rank": 60,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 70.0,
"season_ERA": 2.443,
"season_WHIP": 1.071,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.026,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7372,
"prior_weight": 0.2628
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656794",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 46,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 0.0,
"R": 1.0,
"H": 1.0,
"BB": 5.0,
"SO": 6.0,
"HR": 0.0,
"BF": 29.0,
"Pitches": 131.0
},
"per_game": {
"IP": 1.2,
"ER": 0.0,
"R": 0.2,
"H": 0.2,
"BB": 1.0,
"SO": 1.2,
"HR": 0.0,
"BF": 5.8,
"Pitches": 26.2
},
"rates": {
"ERA": 0.0,
"WHIP": 0.75,
"ER_per_IP": 0.0,
"H_per_IP": 0.125,
"BB_per_IP": 0.625,
"SO_per_IP": 0.75,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 14.0,
"ER": 4.0,
"R": 6.0,
"H": 9.0,
"BB": 7.0,
"SO": 9.0,
"HR": 1.0,
"BF": 56.0,
"Pitches": 226.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.6,
"H": 0.9,
"BB": 0.7,
"SO": 0.9,
"HR": 0.1,
"BF": 5.6,
"Pitches": 22.6
},
"rates": {
"ERA": 2.5714,
"WHIP": 1.1429,
"ER_per_IP": 0.28571,
"H_per_IP": 0.64286,
"BB_per_IP": 0.5,
"SO_per_IP": 0.64286,
"HR_per_IP": 0.07143
}
},
"season": {
"games": 46,
"totals": {
"IP": 70.0,
"ER": 19.0,
"R": 22.0,
"H": 48.0,
"BB": 27.0,
"SO": 64.0,
"HR": 2.0,
"BF": 281.0,
"Pitches": 1089.0
},
"per_game": {
"IP": 1.2,
"ER": 0.413,
"R": 0.4783,
"H": 1.0435,
"BB": 0.587,
"SO": 1.3913,
"HR": 0.0435,
"BF": 6.1087,
"Pitches": 23.6739
},
"rates": {
"ERA": 2.4429,
"WHIP": 1.0714,
"ER_per_IP": 0.27143,
"H_per_IP": 0.68571,
"BB_per_IP": 0.38571,
"SO_per_IP": 0.91429,
"HR_per_IP": 0.02857
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.668,
"predicted_H": 1.535,
"predicted_BB": 1.332,
"predicted_SO": 2.172,
"predicted_HR": 0.167,
"predicted_ERA": 2.2107,
"predicted_WHIP": 1.0541
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.461,
"form_weight": 0.539,
"form_reliability": 0.7372,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.026,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7372,
"prior_weight": 0.2628
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 2.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.668,
"final": 0.36,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.535,
"final": 1.7494,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.332,
"final": 1.1789,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.172,
"final": 3.9368,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.167,
"final": 0.09,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2107,
"final": 2.2107,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0541,
"final": 1.0541,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 14.0,
"ER": 4,
"H": 9,
"BB": 7,
"SO": 9,
"HR": 1,
"ERA": 2.5714285714285716,
"WHIP": 1.1428571428571428,
"K9": 5.785714285714286,
"HR9": 0.6428571428571429,
"games_pitched": 10,
"quality_starts": 0,
"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.9037239488501754,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.026,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7372,
"prior_weight": 0.2628
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656794",
"player_name": "Sean Newcomb",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "CHW",
"games": 129,
"wins": 67,
"losses": 62,
"win_pct": 0.5194,
"runs_scored": 616.0,
"runs_allowed": 574.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3256,
"avg_runs_scored": 4.7752,
"avg_runs_allowed": 4.4496,
"offense_index": 1.0667,
"defense_index": 1.0061,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 4.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0565
},
"opponent": {
"team": "NYM",
"games": 130,
"wins": 59,
"losses": 71,
"win_pct": 0.4538,
"runs_scored": 545.0,
"runs_allowed": 584.0,
"run_differential": -39.0,
"run_differential_per_game": -0.3,
"avg_runs_scored": 4.1923,
"avg_runs_allowed": 4.4923,
"offense_index": 0.9365,
"defense_index": 0.9965,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.7,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0411
},
"edges": {
"quality_edge": 0.0976,
"offense_edge": 0.0667,
"opponent_offense_edge": -0.0635,
"defense_strength": 0.0061,
"opponent_defense_weakness": 0.0035,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9844,
"strikeout": 1.008
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656794",
"profile": {
"available": true,
"pitcher_id": "656794",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 264.0,
"k_percent": 22.6,
"bb_percent": 9.5,
"woba": 0.265,
"xwoba": 0.304,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 37.1,
"avg_best_speed": 77.252,
"avg_hyper_speed": 93.6903,
"whiff_percent": 24.4,
"swing_percent": 44.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.3738,
"command_and_miss": -0.0443,
"regression_edge": -1.1143,
"xwoba_edge": 0.2,
"barrel_edge": 0.3778,
"hard_hit_edge": 0.0857,
"whiff_edge": -0.1286,
"bb_edge": -0.125,
"pitch_design_score": -0.0176
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656794",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 21,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 21,
"pitch_usage": 0.0,
"release_speed": 89.61075057207849,
"release_spin_rate": 2444.981106388793,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 21,
"pitch_usage": 0.0,
"release_speed": 89.61075057207849,
"release_spin_rate": 2444.981106388793,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6108,
"release_spin_rate": 2444.9811,
"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.0176,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1259,
"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.085,
"sample_weight": 1.0,
"run_prevention_factor": 0.9928,
"strikeout_factor": 0.9971,
"walk_factor": 1.01,
"homer_factor": 0.9603,
"woba_minus_xwoba": -0.039,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "656794",
"espn_id": 33856,
"player_name": "Sean Newcomb",
"team": "CHW",
"role": "pitcher",
"espn_rank": 60,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 60,
"gp_value": 47.0,
"gp_rank": 91,
"gs_value": 3.0,
"gs_rank": 241,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 2.4428,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 3.0,
"l_rank": 216,
"sv_value": 4.0,
"sv_rank": 48,
"hld_value": 10.0,
"hld_rank": 74,
"ip_value": 70.0,
"ip_rank": 162,
"h_value": 50.0,
"h_rank": 208,
"er_value": 19.0,
"er_rank": 301,
"hr_value": 2.0,
"hr_rank": 480,
"bb_value": 27.0,
"bb_rank": 168,
"k_value": 64.0,
"k_rank": 174,
"k_per_9_value": 8.228572,
"k_per_9_rank": 29,
"whip_value": 1.1,
"whip_rank": null,
"war_value": 2.12,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9928,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9928,
"adjusted": 0
},
"predicted_BB": {
"original": 2.0,
"factor": 1.01,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9603,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9971,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 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 +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -12 outs from the projected workload."
},
{
"code": "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/20260823_NYM@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"
}
} |
| 20260823 | 20260823_OAK@HOU | away | Brady Basso | Brady Basso | True | 4.2 | 1.0 | -11 | 1 | 3 | 2 | 2/4 | 3/0 | 6/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9130434782608696,
"WHIP": 1.3478260869565217,
"IP": 23.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 2.333,
"recent_avg_IP": 2.333,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0274,
"sample_weight": 0.45,
"run_prevention_factor": 0.9977,
"strikeout_factor": 0.9812,
"walk_factor": 0.946,
"homer_factor": 0.9975,
"regression_flag": "positive_pitcher_regression",
"k_percent": 19.0,
"bb_percent": 3.0,
"woba": 0.341,
"xwoba": 0.297,
"barrel_percent": 6.4,
"hard_hit_percent": 41.0,
"whiff_percent": 21.2
},
"espn_rank": {
"rank": 253,
"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": 4.609,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4796,
"prior_weight": 0.5204
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669620",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 0.0,
"SO": 5.0,
"HR": 1.0,
"BF": 30.0,
"Pitches": 115.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.2,
"H": 1.2,
"BB": 0.0,
"SO": 1.0,
"HR": 0.2,
"BF": 6.0,
"Pitches": 23.0
},
"rates": {
"ERA": 1.125,
"WHIP": 0.75,
"ER_per_IP": 0.125,
"H_per_IP": 0.75,
"BB_per_IP": 0.0,
"SO_per_IP": 0.625,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 15.2,
"ER": 4.0,
"R": 4.0,
"H": 15.0,
"BB": 1.0,
"SO": 12.0,
"HR": 1.0,
"BF": 63.0,
"Pitches": 226.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 1.5,
"BB": 0.1,
"SO": 1.2,
"HR": 0.1,
"BF": 6.3,
"Pitches": 22.6
},
"rates": {
"ERA": 2.2979,
"WHIP": 1.0213,
"ER_per_IP": 0.25532,
"H_per_IP": 0.95745,
"BB_per_IP": 0.06383,
"SO_per_IP": 0.76596,
"HR_per_IP": 0.06383
}
},
"season": {
"games": 16,
"totals": {
"IP": 23.0,
"ER": 10.0,
"R": 10.0,
"H": 28.0,
"BB": 3.0,
"SO": 19.0,
"HR": 2.0,
"BF": 100.0,
"Pitches": 357.0
},
"per_game": {
"IP": 1.1,
"ER": 0.625,
"R": 0.625,
"H": 1.75,
"BB": 0.1875,
"SO": 1.1875,
"HR": 0.125,
"BF": 6.25,
"Pitches": 22.3125
},
"rates": {
"ERA": 3.913,
"WHIP": 1.3478,
"ER_per_IP": 0.43478,
"H_per_IP": 1.21739,
"BB_per_IP": 0.13043,
"SO_per_IP": 0.82609,
"HR_per_IP": 0.08696
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.1,
"predicted_ER": 1.191,
"predicted_H": 3.024,
"predicted_BB": 0.685,
"predicted_SO": 2.672,
"predicted_HR": 0.393,
"predicted_ERA": 3.3544,
"predicted_WHIP": 1.1604
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5699,
"form_weight": 0.4301,
"form_reliability": 0.4796,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.609,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4796,
"prior_weight": 0.5204
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.191,
"final": 1.0822,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.024,
"final": 2.4405,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.685,
"final": 2.0042,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.672,
"final": 4.5685,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.393,
"final": 0.7389,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3544,
"final": 3.3544,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1604,
"final": 1.1604,
"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": 15.2,
"ER": 4,
"H": 15,
"BB": 1,
"SO": 12,
"HR": 1,
"ERA": 2.297872340425532,
"WHIP": 1.021276595744681,
"K9": 6.893617021276596,
"HR9": 0.574468085106383,
"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-18T00:00:00"
},
"recent_form_boost": 0.8749911567534319,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.609,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4796,
"prior_weight": 0.5204
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669620",
"player_name": "Brady Basso",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": "OAK",
"games": 130,
"wins": 50,
"losses": 80,
"win_pct": 0.3846,
"runs_scored": 561.0,
"runs_allowed": 749.0,
"run_differential": -188.0,
"run_differential_per_game": -1.4462,
"avg_runs_scored": 4.3154,
"avg_runs_allowed": 5.7615,
"offense_index": 0.9649,
"defense_index": 0.7762,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.3,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3459
},
"opponent": {
"team": "HOU",
"games": 130,
"wins": 65,
"losses": 65,
"win_pct": 0.5,
"runs_scored": 590.0,
"runs_allowed": 633.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3308,
"avg_runs_scored": 4.5385,
"avg_runs_allowed": 4.8692,
"offense_index": 1.0148,
"defense_index": 0.9185,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 5.2,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0757
},
"edges": {
"quality_edge": -0.2702,
"offense_edge": -0.0351,
"opponent_offense_edge": 0.0148,
"defense_strength": -0.2238,
"opponent_defense_weakness": 0.0815,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9819,
"run_prevention": 1.0383,
"strikeout": 0.9907
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669620",
"profile": {
"available": true,
"pitcher_id": "669620",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 91.0,
"k_percent": 19.0,
"bb_percent": 3.0,
"woba": 0.341,
"xwoba": 0.297,
"sweet_spot_percent": 41.0,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 41.0,
"avg_best_speed": 76.8337,
"avg_hyper_speed": 94.1125,
"whiff_percent": 21.2,
"swing_percent": 52.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0434,
"command_and_miss": -0.1107,
"regression_edge": 1.2571,
"xwoba_edge": 0.4,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.4714,
"whiff_edge": -0.5857,
"bb_edge": 1.5,
"pitch_design_score": -0.1455
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669620",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 87.32797199006954,
"release_spin_rate": 2215.988659010366,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 87.32797199006954,
"release_spin_rate": 2215.988659010366,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.328,
"release_spin_rate": 2215.9887,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1455,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.039,
"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.0274,
"sample_weight": 0.45,
"run_prevention_factor": 0.9977,
"strikeout_factor": 0.9812,
"walk_factor": 0.946,
"homer_factor": 0.9975,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669620",
"espn_id": 4179551,
"player_name": "Brady Basso",
"team": "ATH",
"role": "pitcher",
"espn_rank": 253,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 253,
"gp_value": 16.0,
"gp_rank": 414,
"gs_value": 2.0,
"gs_rank": 263,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 3.913,
"era_rank": null,
"w_value": 0.0,
"w_rank": 500,
"l_value": 0.0,
"l_rank": 550,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 2.0,
"hld_rank": 219,
"ip_value": 23.0,
"ip_rank": 458,
"h_value": 28.0,
"h_rank": 399,
"er_value": 10.0,
"er_rank": 489,
"hr_value": 2.0,
"hr_rank": 480,
"bb_value": 3.0,
"bb_rank": 644,
"k_value": 19.0,
"k_rank": 472,
"k_per_9_value": 7.4347825,
"k_per_9_rank": 27,
"whip_value": 1.3478,
"whip_rank": null,
"war_value": 0.44,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.999,
"adjusted": 0
},
"predicted_H": {
"original": 4.0,
"factor": 0.999,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9757,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9989,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9915,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260823_OAK@HOU.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"
}
} |
| 20260823 | 20260823_OAK@HOU | home | Cristian Javier | Cristian Javier | True | 4.0 | 4.0 | 0 | 3 | 3 | 0 | 4/4 | 3/2 | 4/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.440366972477063,
"WHIP": 1.6788990825688073,
"IP": 36.1,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 3.905,
"recent_avg_IP": 3.8,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3447,
"sample_weight": 0.596,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9871,
"walk_factor": 1.0143,
"homer_factor": 1.0397,
"regression_flag": "neutral",
"k_percent": 18.0,
"bb_percent": 10.2,
"woba": 0.38,
"xwoba": 0.357,
"barrel_percent": 8.5,
"hard_hit_percent": 38.1,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 724,
"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": "664299",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.0,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 2.0,
"SO": 18.0,
"HR": 4.0,
"BF": 88.0,
"Pitches": 348.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 0.4,
"SO": 3.6,
"HR": 0.8,
"BF": 17.6,
"Pitches": 69.6
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2381,
"ER_per_IP": 0.42857,
"H_per_IP": 1.14286,
"BB_per_IP": 0.09524,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.19048
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 31.2,
"ER": 20.0,
"R": 20.0,
"H": 40.0,
"BB": 13.0,
"SO": 29.0,
"HR": 5.0,
"BF": 146.0,
"Pitches": 579.0
},
"per_game": {
"IP": 3.1,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.3,
"SO": 2.9,
"HR": 0.5,
"BF": 14.6,
"Pitches": 57.9
},
"rates": {
"ERA": 5.6842,
"WHIP": 1.6737,
"ER_per_IP": 0.63158,
"H_per_IP": 1.26316,
"BB_per_IP": 0.41053,
"SO_per_IP": 0.91579,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 11,
"totals": {
"IP": 36.1,
"ER": 26.0,
"R": 26.0,
"H": 44.0,
"BB": 17.0,
"SO": 30.0,
"HR": 7.0,
"BF": 167.0,
"Pitches": 653.0
},
"per_game": {
"IP": 3.1,
"ER": 2.3636,
"R": 2.3636,
"H": 4.0,
"BB": 1.5455,
"SO": 2.7273,
"HR": 0.6364,
"BF": 15.1818,
"Pitches": 59.3636
},
"rates": {
"ERA": 6.4404,
"WHIP": 1.6789,
"ER_per_IP": 0.7156,
"H_per_IP": 1.21101,
"BB_per_IP": 0.46789,
"SO_per_IP": 0.82569,
"HR_per_IP": 0.19266
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.079,
"predicted_H": 4.345,
"predicted_BB": 1.183,
"predicted_SO": 3.448,
"predicted_HR": 0.653,
"predicted_ERA": 4.8581,
"predicted_WHIP": 1.4356
}
},
"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.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.079,
"final": 2.0409,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.345,
"final": 3.2146,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.183,
"final": 2.0589,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.448,
"final": 3.7141,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.653,
"final": 0.3382,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8581,
"final": 4.8581,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4356,
"final": 1.4356,
"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": 31.2,
"ER": 20,
"H": 40,
"BB": 13,
"SO": 29,
"HR": 5,
"ERA": 5.684210526315789,
"WHIP": 1.6736842105263157,
"K9": 8.242105263157894,
"HR9": 1.4210526315789473,
"games_pitched": 10,
"quality_starts": 1,
"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-18T00:00:00"
},
"recent_form_boost": 1.152525667678381,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 4.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
}
},
{
"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.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664299",
"player_name": "Cristian Javier",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.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.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.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.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 130,
"wins": 65,
"losses": 65,
"win_pct": 0.5,
"runs_scored": 590.0,
"runs_allowed": 633.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3308,
"avg_runs_scored": 4.5385,
"avg_runs_allowed": 4.8692,
"offense_index": 1.0148,
"defense_index": 0.9185,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 5.2,
"run_differential": -18.0
},
"available": true,
"quality_score": -0.0757
},
"opponent": {
"team": "OAK",
"games": 130,
"wins": 50,
"losses": 80,
"win_pct": 0.3846,
"runs_scored": 561.0,
"runs_allowed": 749.0,
"run_differential": -188.0,
"run_differential_per_game": -1.4462,
"avg_runs_scored": 4.3154,
"avg_runs_allowed": 5.7615,
"offense_index": 0.9649,
"defense_index": 0.7762,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.3,
"run_differential": -12.0
},
"available": true,
"quality_score": -0.3459
},
"edges": {
"quality_edge": 0.2702,
"offense_edge": 0.0148,
"opponent_offense_edge": -0.0351,
"defense_strength": -0.0815,
"opponent_defense_weakness": 0.2238,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0098,
"run_prevention": 0.989,
"strikeout": 1.0109
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664299",
"profile": {
"available": true,
"pitcher_id": "664299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 149.0,
"k_percent": 18.0,
"bb_percent": 10.2,
"woba": 0.38,
"xwoba": 0.357,
"sweet_spot_percent": 39.0,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 38.1,
"avg_best_speed": 80.3181,
"avg_hyper_speed": 94.4288,
"whiff_percent": 25.7,
"swing_percent": 51.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.9953,
"command_and_miss": -0.31,
"regression_edge": 0.6571,
"xwoba_edge": -1.3143,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.0571,
"whiff_edge": 0.0571,
"bb_edge": -0.3,
"pitch_design_score": -0.0767
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 64,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 64,
"pitch_usage": 0.0,
"release_speed": 88.5556274024713,
"release_spin_rate": 2332.2985199695922,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 64,
"pitch_usage": 0.0,
"release_speed": 88.5556274024713,
"release_spin_rate": 2332.2985199695922,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5556,
"release_spin_rate": 2332.2985,
"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.0767,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.548,
"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.3447,
"sample_weight": 0.596,
"run_prevention_factor": 1.0293,
"strikeout_factor": 0.9871,
"walk_factor": 1.0143,
"homer_factor": 1.0397,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664299",
"espn_id": 41261,
"player_name": "Cristian Javier",
"team": "HOU",
"role": "pitcher",
"espn_rank": 724,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 724,
"gp_value": 11.0,
"gp_rank": 481,
"gs_value": 7.0,
"gs_rank": 189,
"qs_value": 1.0,
"qs_rank": 173,
"era_value": 6.4403,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 36.1,
"ip_rank": 367,
"h_value": 44.0,
"h_rank": 252,
"er_value": 26.0,
"er_rank": 204,
"hr_value": 7.0,
"hr_rank": 208,
"bb_value": 17.0,
"bb_rank": 311,
"k_value": 30.0,
"k_rank": 394,
"k_per_9_value": 7.431193,
"k_per_9_rank": 28,
"whip_value": 1.6788,
"whip_rank": null,
"war_value": -0.42,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0175,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0175,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0085,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0237,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9923,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 78,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260823_OAK@HOU.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"
}
} |
| 20260823 | 20260823_PIT@LAD | away | Lake Bachar | Lake Bachar | True | 5.0 | 2.0 | -9 | 1 | 1 | 0 | 3/1 | 4/3 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.1004784688995213,
"WHIP": 1.0191387559808611,
"IP": 69.2,
"games_started": null,
"games_pitched": 42,
"role_avg_IP": 2.4,
"recent_avg_IP": 2.4,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2439,
"sample_weight": 1.0,
"run_prevention_factor": 0.9793,
"strikeout_factor": 1.0457,
"walk_factor": 1.008,
"homer_factor": 1.0103,
"regression_flag": "neutral",
"k_percent": 25.4,
"bb_percent": 9.4,
"woba": 0.289,
"xwoba": 0.294,
"barrel_percent": 9.3,
"hard_hit_percent": 35.2,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 200,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 69.2,
"season_ERA": 3.1,
"season_WHIP": 1.019,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.959,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7363,
"prior_weight": 0.2637
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669199",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 11.0,
"ER": 4.0,
"R": 4.0,
"H": 7.0,
"BB": 6.0,
"SO": 12.0,
"HR": 3.0,
"BF": 45.0,
"Pitches": 200.0
},
"per_game": {
"IP": 2.1,
"ER": 0.8,
"R": 0.8,
"H": 1.4,
"BB": 1.2,
"SO": 2.4,
"HR": 0.6,
"BF": 9.0,
"Pitches": 40.0
},
"rates": {
"ERA": 3.2727,
"WHIP": 1.1818,
"ER_per_IP": 0.36364,
"H_per_IP": 0.63636,
"BB_per_IP": 0.54545,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.2,
"ER": 9.0,
"R": 9.0,
"H": 14.0,
"BB": 7.0,
"SO": 16.0,
"HR": 6.0,
"BF": 77.0,
"Pitches": 307.0
},
"per_game": {
"IP": 2.0,
"ER": 0.9,
"R": 0.9,
"H": 1.4,
"BB": 0.7,
"SO": 1.6,
"HR": 0.6,
"BF": 7.7,
"Pitches": 30.7
},
"rates": {
"ERA": 4.3393,
"WHIP": 1.125,
"ER_per_IP": 0.48214,
"H_per_IP": 0.75,
"BB_per_IP": 0.375,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.32143
}
},
"season": {
"games": 42,
"totals": {
"IP": 69.2,
"ER": 24.0,
"R": 26.0,
"H": 46.0,
"BB": 25.0,
"SO": 73.0,
"HR": 11.0,
"BF": 281.0,
"Pitches": 1135.0
},
"per_game": {
"IP": 1.2,
"ER": 0.5714,
"R": 0.619,
"H": 1.0952,
"BB": 0.5952,
"SO": 1.7381,
"HR": 0.2619,
"BF": 6.6905,
"Pitches": 27.0238
},
"rates": {
"ERA": 3.1005,
"WHIP": 1.0191,
"ER_per_IP": 0.3445,
"H_per_IP": 0.66029,
"BB_per_IP": 0.35885,
"SO_per_IP": 1.04785,
"HR_per_IP": 0.15789
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.296,
"predicted_H": 2.296,
"predicted_BB": 1.293,
"predicted_SO": 2.988,
"predicted_HR": 0.713,
"predicted_ERA": 3.8503,
"predicted_WHIP": 1.1852
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4614,
"form_weight": 0.5386,
"form_reliability": 0.7363,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.959,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7363,
"prior_weight": 0.2637
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 3.0,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.296,
"final": 1.1594,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.296,
"final": 2.6208,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.293,
"final": 2.542,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 2.988,
"final": 2.5321,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.713,
"final": 0.8454,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8503,
"final": 3.8503,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1852,
"final": 1.1852,
"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": 18.2,
"ER": 9,
"H": 14,
"BB": 7,
"SO": 16,
"HR": 6,
"ERA": 4.339285714285714,
"WHIP": 1.125,
"K9": 7.7142857142857135,
"HR9": 2.892857142857143,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9923955917154482,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.959,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7363,
"prior_weight": 0.2637
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669199",
"player_name": "Lake Bachar",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"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": 4.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"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": "PIT",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 653.0,
"runs_allowed": 624.0,
"run_differential": 29.0,
"run_differential_per_game": 0.2214,
"avg_runs_scored": 4.9847,
"avg_runs_allowed": 4.7634,
"offense_index": 1.1161,
"defense_index": 0.9376,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.1,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.011
},
"opponent": {
"team": "LAD",
"games": 130,
"wins": 79,
"losses": 51,
"win_pct": 0.6077,
"runs_scored": 649.0,
"runs_allowed": 502.0,
"run_differential": 147.0,
"run_differential_per_game": 1.1308,
"avg_runs_scored": 4.9923,
"avg_runs_allowed": 3.8615,
"offense_index": 1.1178,
"defense_index": 1.1565,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.3008
},
"edges": {
"quality_edge": -0.2898,
"offense_edge": 0.1161,
"opponent_offense_edge": 0.1178,
"defense_strength": -0.0624,
"opponent_defense_weakness": -0.1565,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0396,
"strikeout": 0.9819
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669199",
"profile": {
"available": true,
"pitcher_id": "669199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 281.0,
"k_percent": 25.4,
"bb_percent": 9.4,
"woba": 0.289,
"xwoba": 0.294,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 35.2,
"avg_best_speed": 78.9758,
"avg_hyper_speed": 93.841,
"whiff_percent": 30.1,
"swing_percent": 45.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2646,
"command_and_miss": 0.4257,
"regression_edge": -0.1429,
"xwoba_edge": 0.4857,
"barrel_edge": -0.4889,
"hard_hit_edge": 0.3571,
"whiff_edge": 0.6857,
"bb_edge": -0.1,
"pitch_design_score": -0.0087
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 40,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 40,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 40,
"pitch_usage": 0.0,
"release_speed": 89.77040919616555,
"release_spin_rate": 2691.0164138592872,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.7704,
"release_spin_rate": 2691.0164,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0087,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.062,
"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.2439,
"sample_weight": 1.0,
"run_prevention_factor": 0.9793,
"strikeout_factor": 1.0457,
"walk_factor": 1.008,
"homer_factor": 1.0103,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669199",
"espn_id": 42592,
"player_name": "Lake Bachar",
"team": "PIT",
"role": "pitcher",
"espn_rank": 200,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 200,
"gp_value": 43.0,
"gp_rank": 120,
"gs_value": 5.0,
"gs_rank": 206,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 3.7464,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 2.0,
"l_rank": 296,
"sv_value": 2.0,
"sv_rank": 84,
"hld_value": 1.0,
"hld_rank": 250,
"ip_value": 69.2,
"ip_rank": 164,
"h_value": 50.0,
"h_rank": 208,
"er_value": 29.0,
"er_rank": 178,
"hr_value": 12.0,
"hr_rank": 118,
"bb_value": 27.0,
"bb_rank": 168,
"k_value": 73.0,
"k_rank": 147,
"k_per_9_value": 9.430622,
"k_per_9_rank": 24,
"whip_value": 1.1052,
"whip_rank": null,
"war_value": 0.76,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9793,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9793,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.008,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0103,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0457,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260823_PIT@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_PIT@LAD | home | Blake Snell | Blake Snell | True | 5.0 | 6.0 | 3 | 0 | 0 | 0 | 3/2 | 1/3 | 5/6 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 3.6,
"WHIP": 1.1333333333333333,
"IP": 15.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6148,
"sample_weight": 0.45,
"run_prevention_factor": 0.9477,
"strikeout_factor": 1.0535,
"walk_factor": 1.0045,
"homer_factor": 0.8666,
"regression_flag": "neutral",
"k_percent": 31.7,
"bb_percent": 9.5,
"woba": 0.228,
"xwoba": 0.229,
"barrel_percent": 0.0,
"hard_hit_percent": 10.8,
"whiff_percent": 36.6
},
"espn_rank": {
"rank": 348,
"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": "605483",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 6.0,
"R": 7.0,
"H": 11.0,
"BB": 6.0,
"SO": 20.0,
"HR": 0.0,
"BF": 63.0,
"Pitches": 251.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.3333,
"H": 3.6667,
"BB": 2.0,
"SO": 6.6667,
"HR": 0.0,
"BF": 21.0,
"Pitches": 83.6667
},
"rates": {
"ERA": 3.6,
"WHIP": 1.1333,
"ER_per_IP": 0.4,
"H_per_IP": 0.73333,
"BB_per_IP": 0.4,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 6.0,
"R": 7.0,
"H": 11.0,
"BB": 6.0,
"SO": 20.0,
"HR": 0.0,
"BF": 63.0,
"Pitches": 251.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.3333,
"H": 3.6667,
"BB": 2.0,
"SO": 6.6667,
"HR": 0.0,
"BF": 21.0,
"Pitches": 83.6667
},
"rates": {
"ERA": 3.6,
"WHIP": 1.1333,
"ER_per_IP": 0.4,
"H_per_IP": 0.73333,
"BB_per_IP": 0.4,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.0
}
},
"season": {
"games": 3,
"totals": {
"IP": 15.0,
"ER": 6.0,
"R": 7.0,
"H": 11.0,
"BB": 6.0,
"SO": 20.0,
"HR": 0.0,
"BF": 63.0,
"Pitches": 251.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.3333,
"H": 3.6667,
"BB": 2.0,
"SO": 6.6667,
"HR": 0.0,
"BF": 21.0,
"Pitches": 83.6667
},
"rates": {
"ERA": 3.6,
"WHIP": 1.1333,
"ER_per_IP": 0.4,
"H_per_IP": 0.73333,
"BB_per_IP": 0.4,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.318,
"predicted_H": 4.418,
"predicted_BB": 1.897,
"predicted_SO": 5.463,
"predicted_HR": 0.463,
"predicted_ERA": 4.173,
"predicted_WHIP": 1.263
}
},
"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": 0.0,
"form": 2.318,
"final": 0.8946,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.418,
"final": 3.5473,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.897,
"final": 1.3462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.463,
"final": 5.1787,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.463,
"final": 0.1787,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.173,
"final": 4.173,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.263,
"final": 1.263,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 15.0,
"ER": 6,
"H": 11,
"BB": 6,
"SO": 20,
"HR": 0,
"ERA": 3.6,
"WHIP": 1.1333333333333333,
"K9": 12.0,
"HR9": 0.0,
"games_pitched": 3,
"quality_starts": 2,
"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-17T00:00:00"
},
"recent_form_boost": 0.9533186050637664,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605483",
"player_name": "Blake Snell",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 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": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": "LAD",
"games": 130,
"wins": 79,
"losses": 51,
"win_pct": 0.6077,
"runs_scored": 649.0,
"runs_allowed": 502.0,
"run_differential": 147.0,
"run_differential_per_game": 1.1308,
"avg_runs_scored": 4.9923,
"avg_runs_allowed": 3.8615,
"offense_index": 1.1178,
"defense_index": 1.1565,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 4.0,
"run_differential": 7.0
},
"available": true,
"quality_score": 0.3008
},
"opponent": {
"team": "PIT",
"games": 131,
"wins": 63,
"losses": 68,
"win_pct": 0.4809,
"runs_scored": 653.0,
"runs_allowed": 624.0,
"run_differential": 29.0,
"run_differential_per_game": 0.2214,
"avg_runs_scored": 4.9847,
"avg_runs_allowed": 4.7634,
"offense_index": 1.1161,
"defense_index": 0.9376,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.1,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.011
},
"edges": {
"quality_edge": 0.2898,
"offense_edge": 0.1178,
"opponent_offense_edge": 0.1161,
"defense_strength": 0.1565,
"opponent_defense_weakness": 0.0624,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0116,
"run_prevention": 0.9884,
"strikeout": 0.9994
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605483",
"profile": {
"available": true,
"pitcher_id": "605483",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 40.0,
"k_percent": 31.7,
"bb_percent": 9.5,
"woba": 0.228,
"xwoba": 0.229,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 0.0,
"hard_hit_percent": 10.8,
"avg_best_speed": 73.3522,
"avg_hyper_speed": 90.3682,
"whiff_percent": 36.6,
"swing_percent": 52.2
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 1.9109,
"command_and_miss": 1.1507,
"regression_edge": -0.0286,
"xwoba_edge": 2.3429,
"barrel_edge": 1.5778,
"hard_hit_edge": 2.5,
"whiff_edge": 1.6143,
"bb_edge": -0.125,
"pitch_design_score": -0.0015
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605483",
"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": 89.89886363636364,
"release_spin_rate": 2378.121753246753,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.89886363636364,
"release_spin_rate": 2378.121753246753,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8989,
"release_spin_rate": 2378.1218,
"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.0015,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0107,
"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.6148,
"sample_weight": 0.45,
"run_prevention_factor": 0.9477,
"strikeout_factor": 1.0535,
"walk_factor": 1.0045,
"homer_factor": 0.8666,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605483",
"espn_id": 33748,
"player_name": "Blake Snell",
"team": "LAD",
"role": "pitcher",
"espn_rank": 348,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 348,
"gp_value": 3.0,
"gp_rank": 666,
"gs_value": 3.0,
"gs_rank": 241,
"qs_value": 2.0,
"qs_rank": 151,
"era_value": 3.6,
"era_rank": null,
"w_value": 1.0,
"w_rank": 384,
"l_value": 1.0,
"l_rank": 397,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 15.0,
"ip_rank": 537,
"h_value": 11.0,
"h_rank": 590,
"er_value": 6.0,
"er_rank": 595,
"hr_value": 0.0,
"hr_rank": 708,
"bb_value": 6.0,
"bb_rank": 548,
"k_value": 20.0,
"k_rank": 461,
"k_per_9_value": 12.0,
"k_per_9_rank": 23,
"whip_value": 1.1333,
"whip_rank": null,
"war_value": 0.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9765,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9765,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.94,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0241,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260823_PIT@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_SF@BOS | away | Matt Wilkinson | Matt Wilkinson | True | 2.1 | 3.2 | 4 | 3 | 4 | 1 | 2/7 | 3/0 | 1/2 | Last 10 before this game (1 available){
"model_context": {
"embedded_season": {
"ERA": 0.0,
"WHIP": 0.5,
"IP": 2.0,
"games_started": null,
"games_pitched": 1,
"role_avg_IP": 2.0,
"recent_avg_IP": 2.0,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0256,
"sample_weight": 0.45,
"run_prevention_factor": 0.9978,
"strikeout_factor": 1.0028,
"walk_factor": 0.9991,
"homer_factor": 0.9988,
"regression_flag": "neutral",
"k_percent": 22.8,
"bb_percent": 9.0,
"woba": 0.307,
"xwoba": 0.308,
"barrel_percent": 7.1,
"hard_hit_percent": 37.7,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 392,
"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": 0.401,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0743,
"prior_weight": 0.9257
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683363",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 1,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 1,
"totals": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"per_game": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"rates": {
"ERA": 0.0,
"WHIP": 0.5,
"ER_per_IP": 0.0,
"H_per_IP": 0.5,
"BB_per_IP": 0.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 1,
"totals": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"per_game": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"rates": {
"ERA": 0.0,
"WHIP": 0.5,
"ER_per_IP": 0.0,
"H_per_IP": 0.5,
"BB_per_IP": 0.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.0
}
},
"season": {
"games": 1,
"totals": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"per_game": {
"IP": 2.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 0.0,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.0
},
"rates": {
"ERA": 0.0,
"WHIP": 0.5,
"ER_per_IP": 0.0,
"H_per_IP": 0.5,
"BB_per_IP": 0.0,
"SO_per_IP": 0.0,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.1,
"predicted_ER": 0.213,
"predicted_H": 0.43,
"predicted_BB": 0.155,
"predicted_SO": 0.402,
"predicted_HR": 0.063,
"predicted_ERA": 4.1846,
"predicted_WHIP": 1.2788
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.7411,
"form_weight": 0.2589,
"form_reliability": 0.0743,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.401,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0743,
"prior_weight": 0.9257
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.1,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.213,
"final": 2.2785,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.43,
"final": 1.5935,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.155,
"final": 2.2635,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 0.402,
"final": 0.8452,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.063,
"final": 0.7574,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1846,
"final": 4.1846,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2788,
"final": 1.2788,
"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": 2.0,
"ER": 0,
"H": 1,
"BB": 0,
"SO": 0,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.5,
"K9": 0.0,
"HR9": 0.0,
"games_pitched": 1,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"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": 0.9662736753103629,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 0.401,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.0743,
"prior_weight": 0.9257
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683363",
"player_name": "Matt Wilkinson",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 0.1,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 2.1,
"predicted_R": 3.0,
"predicted_SO": 1.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 2.1,
"delta": 2.0,
"percent_delta": 20.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 2.1,
"delta": 2.0,
"percent_delta": 20.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 2.1,
"delta": 2.0,
"percent_delta": 20.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 2.1,
"delta": 2.0,
"percent_delta": 20.0,
"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": "SF",
"games": 128,
"wins": 52,
"losses": 76,
"win_pct": 0.4062,
"runs_scored": 517.0,
"runs_allowed": 595.0,
"run_differential": -78.0,
"run_differential_per_game": -0.6094,
"avg_runs_scored": 4.0391,
"avg_runs_allowed": 4.6484,
"offense_index": 0.9001,
"defense_index": 0.9654,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.7,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.2244
},
"opponent": {
"team": "BOS",
"games": 128,
"wins": 69,
"losses": 59,
"win_pct": 0.5391,
"runs_scored": 581.0,
"runs_allowed": 484.0,
"run_differential": 97.0,
"run_differential_per_game": 0.7578,
"avg_runs_scored": 4.5391,
"avg_runs_allowed": 3.7812,
"offense_index": 1.0115,
"defense_index": 1.1868,
"current_streak": "W1",
"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.1261
},
"edges": {
"quality_edge": -0.3505,
"offense_edge": -0.0999,
"opponent_offense_edge": 0.0115,
"defense_strength": -0.0346,
"opponent_defense_weakness": -0.1868,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9845,
"run_prevention": 1.0228,
"strikeout": 0.9886
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683363",
"profile": {
"available": true,
"pitcher_id": "683363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 22.8,
"bb_percent": 9.0,
"woba": 0.307,
"xwoba": 0.308,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5495,
"avg_hyper_speed": 93.8839,
"whiff_percent": 25.9,
"swing_percent": 47.5
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5495,
"avg_hyper_speed": 93.8839,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.0748,
"command_and_miss": 0.0686,
"regression_edge": -0.0286,
"xwoba_edge": 0.0857,
"barrel_edge": 0.0,
"hard_hit_edge": 0.0,
"whiff_edge": 0.0714,
"bb_edge": 0.025,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "683363",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.0256,
"sample_weight": 0.45,
"run_prevention_factor": 0.9978,
"strikeout_factor": 1.0028,
"walk_factor": 0.9991,
"homer_factor": 0.9988,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "683363",
"espn_id": 5339226,
"player_name": "Matt Wilkinson",
"team": "SF",
"role": "pitcher",
"espn_rank": 392,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 392,
"gp_value": 1.0,
"gp_rank": 752,
"gs_value": 1.0,
"gs_rank": 288,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 0.0,
"era_rank": null,
"w_value": 0.0,
"w_rank": 498,
"l_value": 0.0,
"l_rank": 550,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 324,
"ip_value": 2.0,
"ip_rank": 756,
"h_value": 1.0,
"h_rank": 783,
"er_value": 0.0,
"er_rank": 782,
"hr_value": 0.0,
"hr_rank": 705,
"bb_value": 0.0,
"bb_rank": 780,
"k_value": 0.0,
"k_rank": 771,
"k_per_9_value": 0.0,
"k_per_9_rank": 27,
"whip_value": 0.5,
"whip_rank": null,
"war_value": 0.1,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.999,
"adjusted": 0
},
"predicted_H": {
"original": 2.0,
"factor": 0.999,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9996,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9995,
"adjusted": 0
},
"predicted_SO": {
"original": 0.0,
"factor": 1.0013,
"adjusted": 0
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 2.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 1,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 12,
"Pitches": 47,
"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": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260823_SF@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_SF@BOS | home | Jake Bennett | Jake Bennett | True | 5.2 | 7.0 | 4 | 2 | 3 | 1 | 2/7 | 0/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.458677685950413,
"WHIP": 1.0661157024793388,
"IP": 80.2,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 5.762,
"recent_avg_IP": 5.4,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3457,
"sample_weight": 1.0,
"run_prevention_factor": 0.9706,
"strikeout_factor": 0.9731,
"walk_factor": 0.924,
"homer_factor": 0.9483,
"regression_flag": "neutral",
"k_percent": 18.9,
"bb_percent": 5.3,
"woba": 0.268,
"xwoba": 0.278,
"barrel_percent": 6.2,
"hard_hit_percent": 36.4,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 127,
"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": "687562",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 17.0,
"R": 17.0,
"H": 31.0,
"BB": 8.0,
"SO": 23.0,
"HR": 3.0,
"BF": 120.0,
"Pitches": 429.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 3.4,
"H": 6.2,
"BB": 1.6,
"SO": 4.6,
"HR": 0.6,
"BF": 24.0,
"Pitches": 85.8
},
"rates": {
"ERA": 5.6667,
"WHIP": 1.4444,
"ER_per_IP": 0.62963,
"H_per_IP": 1.14815,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.85185,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 20.0,
"R": 20.0,
"H": 48.0,
"BB": 12.0,
"SO": 48.0,
"HR": 5.0,
"BF": 238.0,
"Pitches": 826.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.8,
"BB": 1.2,
"SO": 4.8,
"HR": 0.5,
"BF": 23.8,
"Pitches": 82.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.0,
"ER_per_IP": 0.33333,
"H_per_IP": 0.8,
"BB_per_IP": 0.2,
"SO_per_IP": 0.8,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 14,
"totals": {
"IP": 80.2,
"ER": 31.0,
"R": 31.0,
"H": 69.0,
"BB": 17.0,
"SO": 61.0,
"HR": 6.0,
"BF": 323.0,
"Pitches": 1149.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2143,
"R": 2.2143,
"H": 4.9286,
"BB": 1.2143,
"SO": 4.3571,
"HR": 0.4286,
"BF": 23.0714,
"Pitches": 82.0714
},
"rates": {
"ERA": 3.4587,
"WHIP": 1.0661,
"ER_per_IP": 0.3843,
"H_per_IP": 0.85537,
"BB_per_IP": 0.21074,
"SO_per_IP": 0.7562,
"HR_per_IP": 0.07438
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.728,
"predicted_H": 5.471,
"predicted_BB": 1.564,
"predicted_SO": 4.798,
"predicted_HR": 0.611,
"predicted_ERA": 4.3519,
"predicted_WHIP": 1.2469
}
},
"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.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.728,
"final": 2.3922,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.471,
"final": 3.8702,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.564,
"final": 0.8427,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.798,
"final": 4.8912,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.611,
"final": 1.2516,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3519,
"final": 4.3519,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2469,
"final": 1.2469,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 20,
"H": 48,
"BB": 12,
"SO": 48,
"HR": 5,
"ERA": 2.9999999999999996,
"WHIP": 0.9999999999999999,
"K9": 7.199999999999999,
"HR9": 0.7499999999999999,
"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-14T00:00:00"
},
"recent_form_boost": 0.8332882410632757,
"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": 5.0,
"predicted_HR": 2.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
}
},
{
"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": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687562",
"player_name": "Jake Bennett",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "BOS",
"games": 128,
"wins": 69,
"losses": 59,
"win_pct": 0.5391,
"runs_scored": 581.0,
"runs_allowed": 484.0,
"run_differential": 97.0,
"run_differential_per_game": 0.7578,
"avg_runs_scored": 4.5391,
"avg_runs_allowed": 3.7812,
"offense_index": 1.0115,
"defense_index": 1.1868,
"current_streak": "W1",
"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.1261
},
"opponent": {
"team": "SF",
"games": 128,
"wins": 52,
"losses": 76,
"win_pct": 0.4062,
"runs_scored": 517.0,
"runs_allowed": 595.0,
"run_differential": -78.0,
"run_differential_per_game": -0.6094,
"avg_runs_scored": 4.0391,
"avg_runs_allowed": 4.6484,
"offense_index": 0.9001,
"defense_index": 0.9654,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.7,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.2244
},
"edges": {
"quality_edge": 0.3505,
"offense_edge": 0.0115,
"opponent_offense_edge": -0.0999,
"defense_strength": 0.1868,
"opponent_defense_weakness": 0.0346,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0236,
"run_prevention": 0.9478,
"strikeout": 1.0185
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687562",
"profile": {
"available": true,
"pitcher_id": "687562",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 300.0,
"k_percent": 18.9,
"bb_percent": 5.3,
"woba": 0.268,
"xwoba": 0.278,
"sweet_spot_percent": 29.8,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 36.4,
"avg_best_speed": 76.1306,
"avg_hyper_speed": 93.9952,
"whiff_percent": 24.0,
"swing_percent": 52.6
},
"league_medians": {
"pa": 124.0,
"k_percent": 22.2,
"bb_percent": 9.1,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5495,
"avg_hyper_speed": 93.8839,
"whiff_percent": 25.4,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.7222,
"command_and_miss": -0.0921,
"regression_edge": -0.2857,
"xwoba_edge": 0.9429,
"barrel_edge": 0.2,
"hard_hit_edge": 0.1857,
"whiff_edge": -0.2,
"bb_edge": 0.95,
"pitch_design_score": -0.0777
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687562",
"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": 88.53302474501449,
"release_spin_rate": 2082.055518417999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.53302474501449,
"release_spin_rate": 2082.055518417999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.533,
"release_spin_rate": 2082.0555,
"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.0777,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5548,
"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.3457,
"sample_weight": 1.0,
"run_prevention_factor": 0.9706,
"strikeout_factor": 0.9731,
"walk_factor": 0.924,
"homer_factor": 0.9483,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687562",
"espn_id": 4654024,
"player_name": "Jake Bennett",
"team": "BOS",
"role": "pitcher",
"espn_rank": 127,
"espn_total_ranked": 821,
"metrics": {
"espn_rank": 127,
"gp_value": 14.0,
"gp_rank": 446,
"gs_value": 14.0,
"gs_rank": 132,
"qs_value": 6.0,
"qs_rank": 82,
"era_value": 3.4586,
"era_rank": null,
"w_value": 7.0,
"w_rank": 67,
"l_value": 6.0,
"l_rank": 94,
"sv_value": 0.0,
"sv_rank": 239,
"hld_value": 0.0,
"hld_rank": 324,
"ip_value": 80.2,
"ip_rank": 139,
"h_value": 69.0,
"h_rank": 152,
"er_value": 31.0,
"er_rank": 169,
"hr_value": 6.0,
"hr_rank": 245,
"bb_value": 17.0,
"bb_rank": 308,
"k_value": 61.0,
"k_rank": 185,
"k_per_9_value": 6.805785,
"k_per_9_rank": 35,
"whip_value": 1.0661,
"whip_rank": null,
"war_value": 1.28,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9706,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9706,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9483,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9731,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"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."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260823_SF@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_STL@PHI | away | Kyle Leahy | Kyle Leahy | True | 5.2 | 4.0 | -5 | 2 | 0 | -2 | 3/2 | 1/2 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.237057220708447,
"WHIP": 1.3079019073569482,
"IP": 122.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.097,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4681,
"sample_weight": 1.0,
"run_prevention_factor": 1.0398,
"strikeout_factor": 0.98,
"walk_factor": 0.956,
"homer_factor": 1.1411,
"regression_flag": "neutral",
"k_percent": 21.5,
"bb_percent": 6.8,
"woba": 0.321,
"xwoba": 0.34,
"barrel_percent": 10.2,
"hard_hit_percent": 48.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 44,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 122.1,
"season_ERA": 3.237,
"season_WHIP": 1.308,
"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": 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": "681517",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 6.0,
"R": 6.0,
"H": 29.0,
"BB": 2.0,
"SO": 32.0,
"HR": 2.0,
"BF": 108.0,
"Pitches": 453.0
},
"per_game": {
"IP": 5.1,
"ER": 1.2,
"R": 1.2,
"H": 5.8,
"BB": 0.4,
"SO": 6.4,
"HR": 0.4,
"BF": 21.6,
"Pitches": 90.6
},
"rates": {
"ERA": 2.0,
"WHIP": 1.1481,
"ER_per_IP": 0.22222,
"H_per_IP": 1.07407,
"BB_per_IP": 0.07407,
"SO_per_IP": 1.18519,
"HR_per_IP": 0.07407
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 8.0,
"R": 8.0,
"H": 41.0,
"BB": 9.0,
"SO": 52.0,
"HR": 3.0,
"BF": 201.0,
"Pitches": 841.0
},
"per_game": {
"IP": 5.1,
"ER": 0.8,
"R": 0.8,
"H": 4.1,
"BB": 0.9,
"SO": 5.2,
"HR": 0.3,
"BF": 20.1,
"Pitches": 84.1
},
"rates": {
"ERA": 1.3758,
"WHIP": 0.9554,
"ER_per_IP": 0.15287,
"H_per_IP": 0.78344,
"BB_per_IP": 0.17197,
"SO_per_IP": 0.99363,
"HR_per_IP": 0.05732
}
},
"season": {
"games": 24,
"totals": {
"IP": 122.1,
"ER": 44.0,
"R": 44.0,
"H": 125.0,
"BB": 35.0,
"SO": 111.0,
"HR": 12.0,
"BF": 516.0,
"Pitches": 2023.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8333,
"R": 1.8333,
"H": 5.2083,
"BB": 1.4583,
"SO": 4.625,
"HR": 0.5,
"BF": 21.5,
"Pitches": 84.2917
},
"rates": {
"ERA": 3.2371,
"WHIP": 1.3079,
"ER_per_IP": 0.35967,
"H_per_IP": 1.0218,
"BB_per_IP": 0.2861,
"SO_per_IP": 0.90736,
"HR_per_IP": 0.09809
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.457,
"predicted_H": 5.143,
"predicted_BB": 1.003,
"predicted_SO": 5.564,
"predicted_HR": 0.459,
"predicted_ERA": 2.4579,
"predicted_WHIP": 1.152
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.457,
"final": 1.2638,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.143,
"final": 4.2369,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.003,
"final": 1.0017,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.564,
"final": 5.7484,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.459,
"final": 0.2649,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4579,
"final": 2.4579,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.152,
"final": 1.152,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 8,
"H": 41,
"BB": 9,
"SO": 52,
"HR": 3,
"ERA": 1.375796178343949,
"WHIP": 0.9554140127388535,
"K9": 8.942675159235668,
"HR9": 0.5159235668789809,
"games_pitched": 10,
"quality_starts": 4,
"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-18T00:00:00"
},
"recent_form_boost": 0.69115959162121,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 3.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
}
},
{
"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": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681517",
"player_name": "Kyle Leahy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 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": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 131,
"wins": 66,
"losses": 65,
"win_pct": 0.5038,
"runs_scored": 581.0,
"runs_allowed": 581.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4351,
"avg_runs_allowed": 4.4351,
"offense_index": 0.9907,
"defense_index": 1.0094,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0032
},
"opponent": {
"team": "PHI",
"games": 130,
"wins": 72,
"losses": 58,
"win_pct": 0.5538,
"runs_scored": 593.0,
"runs_allowed": 568.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1923,
"avg_runs_scored": 4.5615,
"avg_runs_allowed": 4.3692,
"offense_index": 1.019,
"defense_index": 1.0246,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1744
},
"edges": {
"quality_edge": -0.1712,
"offense_edge": -0.0093,
"opponent_offense_edge": 0.019,
"defense_strength": 0.0094,
"opponent_defense_weakness": -0.0246,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0107,
"strikeout": 0.9933
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681517",
"profile": {
"available": true,
"pitcher_id": "681517",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 496.0,
"k_percent": 21.5,
"bb_percent": 6.8,
"woba": 0.321,
"xwoba": 0.34,
"sweet_spot_percent": 36.0,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 48.4,
"avg_best_speed": 80.9224,
"avg_hyper_speed": 95.5556,
"whiff_percent": 22.5,
"swing_percent": 46.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.7007,
"command_and_miss": -0.075,
"regression_edge": -0.5429,
"xwoba_edge": -0.8286,
"barrel_edge": -0.6889,
"hard_hit_edge": -1.5286,
"whiff_edge": -0.4,
"bb_edge": 0.55,
"pitch_design_score": -0.0242
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681517",
"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.49334158081874,
"release_spin_rate": 2180.062264203981,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.49334158081874,
"release_spin_rate": 2180.062264203981,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4933,
"release_spin_rate": 2180.0623,
"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.0242,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1729,
"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.4681,
"sample_weight": 1.0,
"run_prevention_factor": 1.0398,
"strikeout_factor": 0.98,
"walk_factor": 0.956,
"homer_factor": 1.1411,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681517",
"espn_id": 5006093,
"player_name": "Kyle Leahy",
"team": "STL",
"role": "pitcher",
"espn_rank": 44,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 44,
"gp_value": 24.0,
"gp_rank": 289,
"gs_value": 24.0,
"gs_rank": 38,
"qs_value": 6.0,
"qs_rank": 82,
"era_value": 3.237,
"era_rank": null,
"w_value": 10.0,
"w_rank": 22,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 122.1,
"ip_rank": 71,
"h_value": 125.0,
"h_rank": 39,
"er_value": 44.0,
"er_rank": 111,
"hr_value": 12.0,
"hr_rank": 118,
"bb_value": 35.0,
"bb_rank": 95,
"k_value": 111.0,
"k_rank": 64,
"k_per_9_value": 8.166213,
"k_per_9_rank": 24,
"whip_value": 1.3079,
"whip_rank": null,
"war_value": 2.46,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0398,
"adjusted": 1
},
"predicted_H": {
"original": 6.0,
"factor": 1.0398,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.1411,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 0.98,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 96,
"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/20260823_STL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_STL@PHI | home | Cristopher Sánchez | Cristopher Sánchez | True | 6.0 | 6.2 | 2 | 3 | 4 | 1 | 3/9 | 2/0 | 10/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.5051546391752577,
"WHIP": 1.218556701030928,
"IP": 161.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.218,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4665,
"sample_weight": 1.0,
"run_prevention_factor": 0.9603,
"strikeout_factor": 1.0749,
"walk_factor": 0.932,
"homer_factor": 1.0021,
"regression_flag": "neutral",
"k_percent": 27.8,
"bb_percent": 5.6,
"woba": 0.293,
"xwoba": 0.284,
"barrel_percent": 7.2,
"hard_hit_percent": 41.8,
"whiff_percent": 32.8
},
"espn_rank": {
"rank": 1,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "650911",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 6.0,
"R": 6.0,
"H": 26.0,
"BB": 13.0,
"SO": 36.0,
"HR": 1.0,
"BF": 123.0,
"Pitches": 477.0
},
"per_game": {
"IP": 5.2,
"ER": 1.2,
"R": 1.2,
"H": 5.2,
"BB": 2.6,
"SO": 7.2,
"HR": 0.2,
"BF": 24.6,
"Pitches": 95.4
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.3448,
"ER_per_IP": 0.2069,
"H_per_IP": 0.89655,
"BB_per_IP": 0.44828,
"SO_per_IP": 1.24138,
"HR_per_IP": 0.03448
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 24.0,
"R": 25.0,
"H": 65.0,
"BB": 18.0,
"SO": 66.0,
"HR": 6.0,
"BF": 249.0,
"Pitches": 946.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.5,
"H": 6.5,
"BB": 1.8,
"SO": 6.6,
"HR": 0.6,
"BF": 24.9,
"Pitches": 94.6
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.4647,
"ER_per_IP": 0.42353,
"H_per_IP": 1.14706,
"BB_per_IP": 0.31765,
"SO_per_IP": 1.16471,
"HR_per_IP": 0.10588
}
},
"season": {
"games": 26,
"totals": {
"IP": 161.2,
"ER": 45.0,
"R": 51.0,
"H": 159.0,
"BB": 38.0,
"SO": 187.0,
"HR": 13.0,
"BF": 673.0,
"Pitches": 2479.0
},
"per_game": {
"IP": 6.1,
"ER": 1.7308,
"R": 1.9615,
"H": 6.1154,
"BB": 1.4615,
"SO": 7.1923,
"HR": 0.5,
"BF": 25.8846,
"Pitches": 95.3462
},
"rates": {
"ERA": 2.5052,
"WHIP": 1.2186,
"ER_per_IP": 0.27835,
"H_per_IP": 0.98351,
"BB_per_IP": 0.23505,
"SO_per_IP": 1.1567,
"HR_per_IP": 0.08041
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.925,
"predicted_H": 5.815,
"predicted_BB": 2.106,
"predicted_SO": 6.75,
"predicted_HR": 0.475,
"predicted_ERA": 2.9705,
"predicted_WHIP": 1.3582
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.925,
"final": 1.9564,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.815,
"final": 4.6379,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.106,
"final": 2.0617,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.75,
"final": 7.2727,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.475,
"final": 0.6945,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9705,
"final": 2.9705,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3582,
"final": 1.3582,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 24,
"H": 65,
"BB": 18,
"SO": 66,
"HR": 6,
"ERA": 3.811764705882353,
"WHIP": 1.4647058823529413,
"K9": 10.48235294117647,
"HR9": 0.9529411764705883,
"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-17T00:00:00"
},
"recent_form_boost": 0.9366510546752851,
"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": 2.0,
"predicted_SO": 8.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": "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": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 10.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 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": 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": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 8.0,
"after": 10.0,
"delta": 2.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 130,
"wins": 72,
"losses": 58,
"win_pct": 0.5538,
"runs_scored": 593.0,
"runs_allowed": 568.0,
"run_differential": 25.0,
"run_differential_per_game": 0.1923,
"avg_runs_scored": 4.5615,
"avg_runs_allowed": 4.3692,
"offense_index": 1.019,
"defense_index": 1.0246,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.5,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.1744
},
"opponent": {
"team": "STL",
"games": 131,
"wins": 66,
"losses": 65,
"win_pct": 0.5038,
"runs_scored": 581.0,
"runs_allowed": 581.0,
"run_differential": 0.0,
"run_differential_per_game": 0.0,
"avg_runs_scored": 4.4351,
"avg_runs_allowed": 4.4351,
"offense_index": 0.9907,
"defense_index": 1.0094,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.1,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.0032
},
"edges": {
"quality_edge": 0.1712,
"offense_edge": 0.019,
"opponent_offense_edge": -0.0093,
"defense_strength": 0.0246,
"opponent_defense_weakness": -0.0094,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.008,
"run_prevention": 0.9875,
"strikeout": 1.0059
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 644.0,
"k_percent": 27.8,
"bb_percent": 5.6,
"woba": 0.293,
"xwoba": 0.284,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 41.8,
"avg_best_speed": 78.1045,
"avg_hyper_speed": 94.4313,
"whiff_percent": 32.8,
"swing_percent": 50.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.3632,
"command_and_miss": 0.905,
"regression_edge": 0.2571,
"xwoba_edge": 0.7714,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.5857,
"whiff_edge": 1.0714,
"bb_edge": 0.85,
"pitch_design_score": 0.0258
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.38657615494853,
"release_spin_rate": 2081.4914934264916,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 97,
"pitch_usage": 0.0,
"release_speed": 90.38657615494853,
"release_spin_rate": 2081.4914934264916,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3866,
"release_spin_rate": 2081.4915,
"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.0258,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1844,
"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.4665,
"sample_weight": 1.0,
"run_prevention_factor": 0.9603,
"strikeout_factor": 1.0749,
"walk_factor": 0.932,
"homer_factor": 1.0021,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650911",
"espn_id": 42359,
"player_name": "Cristopher Sanchez",
"team": "PHI",
"role": "pitcher",
"espn_rank": 1,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 1,
"gp_value": 26.0,
"gp_rank": 231,
"gs_value": 26.0,
"gs_rank": 7,
"qs_value": 18.0,
"qs_rank": 2,
"era_value": 2.5051,
"era_rank": 5.0,
"w_value": 16.0,
"w_rank": 1,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 161.2,
"ip_rank": 3,
"h_value": 159.0,
"h_rank": 3,
"er_value": 45.0,
"er_rank": 105,
"hr_value": 13.0,
"hr_rank": 101,
"bb_value": 38.0,
"bb_rank": 75,
"k_value": 187.0,
"k_rank": 6,
"k_per_9_value": 10.410309,
"k_per_9_rank": 54,
"whip_value": 1.2185,
"whip_rank": 33.0,
"war_value": 7.02,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9603,
"adjusted": 1
},
"predicted_H": {
"original": 6.0,
"factor": 0.9603,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.932,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0021,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0749,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 10,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260823_STL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_TB@BAL | away | Nick Martinez | Nick Martinez | True | 6.0 | 6.0 | 0 | 2 | 0 | -2 | 1/1 | 2/0 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0494117647058827,
"WHIP": 1.1364705882352941,
"IP": 141.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.903,
"recent_avg_IP": 6.067,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2714,
"sample_weight": 1.0,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9103,
"walk_factor": 0.896,
"homer_factor": 0.9896,
"regression_flag": "neutral",
"k_percent": 14.5,
"bb_percent": 3.8,
"woba": 0.301,
"xwoba": 0.326,
"barrel_percent": 7.3,
"hard_hit_percent": 33.0,
"whiff_percent": 17.3
},
"espn_rank": {
"rank": 27,
"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": "607259",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 16.0,
"R": 16.0,
"H": 34.0,
"BB": 2.0,
"SO": 21.0,
"HR": 6.0,
"BF": 122.0,
"Pitches": 419.0
},
"per_game": {
"IP": 6.0,
"ER": 3.2,
"R": 3.2,
"H": 6.8,
"BB": 0.4,
"SO": 4.2,
"HR": 1.2,
"BF": 24.4,
"Pitches": 83.8
},
"rates": {
"ERA": 4.7473,
"WHIP": 1.1868,
"ER_per_IP": 0.52747,
"H_per_IP": 1.12088,
"BB_per_IP": 0.06593,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.1978
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 24.0,
"R": 24.0,
"H": 57.0,
"BB": 8.0,
"SO": 33.0,
"HR": 10.0,
"BF": 234.0,
"Pitches": 829.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.4,
"H": 5.7,
"BB": 0.8,
"SO": 3.3,
"HR": 1.0,
"BF": 23.4,
"Pitches": 82.9
},
"rates": {
"ERA": 3.6818,
"WHIP": 1.108,
"ER_per_IP": 0.40909,
"H_per_IP": 0.97159,
"BB_per_IP": 0.13636,
"SO_per_IP": 0.5625,
"HR_per_IP": 0.17045
}
},
"season": {
"games": 24,
"totals": {
"IP": 141.2,
"ER": 48.0,
"R": 48.0,
"H": 139.0,
"BB": 22.0,
"SO": 83.0,
"HR": 17.0,
"BF": 574.0,
"Pitches": 1983.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 5.7917,
"BB": 0.9167,
"SO": 3.4583,
"HR": 0.7083,
"BF": 23.9167,
"Pitches": 82.625
},
"rates": {
"ERA": 3.0494,
"WHIP": 1.1365,
"ER_per_IP": 0.33882,
"H_per_IP": 0.98118,
"BB_per_IP": 0.15529,
"SO_per_IP": 0.58588,
"HR_per_IP": 0.12
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.745,
"predicted_H": 6.175,
"predicted_BB": 0.918,
"predicted_SO": 4.087,
"predicted_HR": 1.011,
"predicted_ERA": 4.1179,
"predicted_WHIP": 1.1822
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.745,
"final": 2.43,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 6.175,
"final": 3.9868,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.918,
"final": 1.3755,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.087,
"final": 4.4731,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.011,
"final": 0.5835,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1179,
"final": 4.1179,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1822,
"final": 1.1822,
"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": 24,
"H": 57,
"BB": 8,
"SO": 33,
"HR": 10,
"ERA": 3.681818181818182,
"WHIP": 1.1079545454545454,
"K9": 5.0625,
"HR9": 1.5340909090909092,
"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-18T00:00:00"
},
"recent_form_boost": 0.9131132872956058,
"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": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607259",
"player_name": "Nick Martinez",
"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": 2.0,
"predicted_ER": 2.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.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": 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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 129,
"wins": 76,
"losses": 53,
"win_pct": 0.5891,
"runs_scored": 584.0,
"runs_allowed": 542.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3256,
"avg_runs_scored": 4.5271,
"avg_runs_allowed": 4.2016,
"offense_index": 1.0113,
"defense_index": 1.0655,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.9,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0457
},
"opponent": {
"team": "BAL",
"games": 130,
"wins": 63,
"losses": 67,
"win_pct": 0.4846,
"runs_scored": 582.0,
"runs_allowed": 615.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2538,
"avg_runs_scored": 4.4769,
"avg_runs_allowed": 4.7308,
"offense_index": 1.0001,
"defense_index": 0.9463,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.3,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0443
},
"edges": {
"quality_edge": 0.09,
"offense_edge": 0.0113,
"opponent_offense_edge": 0.0001,
"defense_strength": 0.0655,
"opponent_defense_weakness": 0.0537,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0056,
"run_prevention": 0.989,
"strikeout": 1.0027
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607259",
"profile": {
"available": true,
"pitcher_id": "607259",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 550.0,
"k_percent": 14.5,
"bb_percent": 3.8,
"woba": 0.301,
"xwoba": 0.326,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 33.0,
"avg_best_speed": 75.7918,
"avg_hyper_speed": 93.2591,
"whiff_percent": 17.3,
"swing_percent": 50.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0383,
"command_and_miss": -0.635,
"regression_edge": -0.7143,
"xwoba_edge": -0.4286,
"barrel_edge": -0.0444,
"hard_hit_edge": 0.6714,
"whiff_edge": -1.1429,
"bb_edge": 1.3,
"pitch_design_score": -0.1686
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607259",
"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": 86.91453344101728,
"release_spin_rate": 2190.4425206145447,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 86.91453344101728,
"release_spin_rate": 2190.4425206145447,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.9145,
"release_spin_rate": 2190.4425,
"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.1686,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2044,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2714,
"sample_weight": 1.0,
"run_prevention_factor": 1.0231,
"strikeout_factor": 0.9103,
"walk_factor": 0.896,
"homer_factor": 0.9896,
"woba_minus_xwoba": -0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607259",
"espn_id": 33372,
"player_name": "Nick Martinez",
"team": "TB",
"role": "pitcher",
"espn_rank": 27,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 27,
"gp_value": 24.0,
"gp_rank": 289,
"gs_value": 24.0,
"gs_rank": 38,
"qs_value": 11.0,
"qs_rank": 36,
"era_value": 3.0494,
"era_rank": 12.0,
"w_value": 12.0,
"w_rank": 11,
"l_value": 4.0,
"l_rank": 157,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 141.2,
"ip_rank": 27,
"h_value": 139.0,
"h_rank": 14,
"er_value": 48.0,
"er_rank": 94,
"hr_value": 17.0,
"hr_rank": 48,
"bb_value": 22.0,
"bb_rank": 223,
"k_value": 83.0,
"k_rank": 118,
"k_per_9_value": 5.272941,
"k_per_9_rank": 118,
"whip_value": 1.1364,
"whip_rank": 21.0,
"war_value": 3.02,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0231,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0231,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.896,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9896,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9103,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 97,
"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/20260823_TB@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_TB@BAL | home | Shane Baz | Shane Baz | True | 5.2 | 5.2 | 0 | 0 | 3 | 3 | 2/5 | 1/3 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.016018306636155,
"WHIP": 1.345537757437071,
"IP": 145.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.827,
"recent_avg_IP": 5.6,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1211,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 0.9783,
"walk_factor": 0.978,
"homer_factor": 1.0247,
"regression_flag": "neutral",
"k_percent": 21.2,
"bb_percent": 7.9,
"woba": 0.316,
"xwoba": 0.312,
"barrel_percent": 6.8,
"hard_hit_percent": 42.8,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 111,
"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": "669358",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 12.0,
"R": 13.0,
"H": 28.0,
"BB": 7.0,
"SO": 27.0,
"HR": 2.0,
"BF": 116.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 5.6,
"BB": 1.4,
"SO": 5.4,
"HR": 0.4,
"BF": 23.2,
"Pitches": 90.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.25,
"ER_per_IP": 0.42857,
"H_per_IP": 1.0,
"BB_per_IP": 0.25,
"SO_per_IP": 0.96429,
"HR_per_IP": 0.07143
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 25.0,
"R": 29.0,
"H": 60.0,
"BB": 15.0,
"SO": 56.0,
"HR": 3.0,
"BF": 240.0,
"Pitches": 932.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.9,
"H": 6.0,
"BB": 1.5,
"SO": 5.6,
"HR": 0.3,
"BF": 24.0,
"Pitches": 93.2
},
"rates": {
"ERA": 3.9706,
"WHIP": 1.3235,
"ER_per_IP": 0.44118,
"H_per_IP": 1.05882,
"BB_per_IP": 0.26471,
"SO_per_IP": 0.98824,
"HR_per_IP": 0.05294
}
},
"season": {
"games": 25,
"totals": {
"IP": 145.2,
"ER": 65.0,
"R": 75.0,
"H": 147.0,
"BB": 49.0,
"SO": 132.0,
"HR": 11.0,
"BF": 623.0,
"Pitches": 2376.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 3.0,
"H": 5.88,
"BB": 1.96,
"SO": 5.28,
"HR": 0.44,
"BF": 24.92,
"Pitches": 95.04
},
"rates": {
"ERA": 4.016,
"WHIP": 1.3455,
"ER_per_IP": 0.44622,
"H_per_IP": 1.00915,
"BB_per_IP": 0.33638,
"SO_per_IP": 0.90618,
"HR_per_IP": 0.07551
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.535,
"predicted_H": 5.748,
"predicted_BB": 1.633,
"predicted_SO": 5.434,
"predicted_HR": 0.45,
"predicted_ERA": 4.0267,
"predicted_WHIP": 1.3025
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 2.535,
"final": 1.4692,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.748,
"final": 4.1722,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.633,
"final": 1.3669,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.434,
"final": 4.4107,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.45,
"final": 0.2608,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0267,
"final": 4.0267,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3025,
"final": 1.3025,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.2,
"ER": 25,
"H": 60,
"BB": 15,
"SO": 56,
"HR": 3,
"ERA": 3.9705882352941178,
"WHIP": 1.3235294117647058,
"K9": 8.894117647058824,
"HR9": 0.47647058823529415,
"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-18T00:00:00"
},
"recent_form_boost": 0.9509892899694026,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 3.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": "669358",
"player_name": "Shane Baz",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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.2,
"predicted_R": 0.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": 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.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": 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.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 130,
"wins": 63,
"losses": 67,
"win_pct": 0.4846,
"runs_scored": 582.0,
"runs_allowed": 615.0,
"run_differential": -33.0,
"run_differential_per_game": -0.2538,
"avg_runs_scored": 4.4769,
"avg_runs_allowed": 4.7308,
"offense_index": 1.0001,
"defense_index": 0.9463,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.3,
"run_differential": 1.0
},
"available": true,
"quality_score": -0.0443
},
"opponent": {
"team": "TB",
"games": 129,
"wins": 76,
"losses": 53,
"win_pct": 0.5891,
"runs_scored": 584.0,
"runs_allowed": 542.0,
"run_differential": 42.0,
"run_differential_per_game": 0.3256,
"avg_runs_scored": 4.5271,
"avg_runs_allowed": 4.2016,
"offense_index": 1.0113,
"defense_index": 1.0655,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.9,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0457
},
"edges": {
"quality_edge": -0.09,
"offense_edge": 0.0001,
"opponent_offense_edge": 0.0113,
"defense_strength": -0.0537,
"opponent_defense_weakness": -0.0655,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9943,
"run_prevention": 1.0117,
"strikeout": 0.9964
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669358",
"profile": {
"available": true,
"pitcher_id": "669358",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 21.2,
"bb_percent": 7.9,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 42.8,
"avg_best_speed": 80.6951,
"avg_hyper_speed": 94.5687,
"whiff_percent": 22.5,
"swing_percent": 49.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1737,
"command_and_miss": -0.1493,
"regression_edge": 0.1143,
"xwoba_edge": -0.0286,
"barrel_edge": 0.0667,
"hard_hit_edge": -0.7286,
"whiff_edge": -0.4,
"bb_edge": 0.275,
"pitch_design_score": 0.0445
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669358",
"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": 90.7202168043362,
"release_spin_rate": 2407.834742983574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.7202168043362,
"release_spin_rate": 2407.834742983574,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7202,
"release_spin_rate": 2407.8347,
"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.0445,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3179,
"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.1211,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 0.9783,
"walk_factor": 0.978,
"homer_factor": 1.0247,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669358",
"espn_id": 39639,
"player_name": "Shane Baz",
"team": "BAL",
"role": "pitcher",
"espn_rank": 111,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 111,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 25.0,
"gs_rank": 20,
"qs_value": 11.0,
"qs_rank": 36,
"era_value": 4.016,
"era_rank": 41.0,
"w_value": 4.0,
"w_rank": 168,
"l_value": 13.0,
"l_rank": 1,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 145.2,
"ip_rank": 16,
"h_value": 147.0,
"h_rank": 8,
"er_value": 65.0,
"er_rank": 22,
"hr_value": 11.0,
"hr_rank": 134,
"bb_value": 49.0,
"bb_rank": 21,
"k_value": 132.0,
"k_rank": 35,
"k_per_9_value": 8.155607,
"k_per_9_rank": 59,
"whip_value": 1.3455,
"whip_rank": 46.0,
"war_value": 1.43,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0103,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0103,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0247,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9783,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260823_TB@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260823 | 20260823_TOR@NYY | away | José Soriano | José Soriano | True | 5.2 | 5.0 | -2 | 3 | 5 | 2 | 5/7 | 4/3 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.229665071770335,
"WHIP": 1.263157894736842,
"IP": 139.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.573,
"recent_avg_IP": 5.667,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0599,
"sample_weight": 1.0,
"run_prevention_factor": 1.0051,
"strikeout_factor": 1.0389,
"walk_factor": 1.034,
"homer_factor": 1.0346,
"regression_flag": "negative_pitcher_regression",
"k_percent": 23.5,
"bb_percent": 10.7,
"woba": 0.291,
"xwoba": 0.326,
"barrel_percent": 8.0,
"hard_hit_percent": 38.7,
"whiff_percent": 30.8
},
"espn_rank": {
"rank": 23,
"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": "667755",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 7.0,
"R": 9.0,
"H": 24.0,
"BB": 9.0,
"SO": 21.0,
"HR": 1.0,
"BF": 112.0,
"Pitches": 455.0
},
"per_game": {
"IP": 5.2,
"ER": 1.4,
"R": 1.8,
"H": 4.8,
"BB": 1.8,
"SO": 4.2,
"HR": 0.2,
"BF": 22.4,
"Pitches": 91.0
},
"rates": {
"ERA": 2.2235,
"WHIP": 1.1647,
"ER_per_IP": 0.24706,
"H_per_IP": 0.84706,
"BB_per_IP": 0.31765,
"SO_per_IP": 0.74118,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 23.0,
"R": 26.0,
"H": 49.0,
"BB": 20.0,
"SO": 44.0,
"HR": 4.0,
"BF": 218.0,
"Pitches": 890.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.6,
"H": 4.9,
"BB": 2.0,
"SO": 4.4,
"HR": 0.4,
"BF": 21.8,
"Pitches": 89.0
},
"rates": {
"ERA": 3.9554,
"WHIP": 1.3185,
"ER_per_IP": 0.43949,
"H_per_IP": 0.93631,
"BB_per_IP": 0.38217,
"SO_per_IP": 0.84076,
"HR_per_IP": 0.07643
}
},
"season": {
"games": 25,
"totals": {
"IP": 139.1,
"ER": 50.0,
"R": 55.0,
"H": 114.0,
"BB": 62.0,
"SO": 136.0,
"HR": 13.0,
"BF": 578.0,
"Pitches": 2317.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.2,
"H": 4.56,
"BB": 2.48,
"SO": 5.44,
"HR": 0.52,
"BF": 23.12,
"Pitches": 92.68
},
"rates": {
"ERA": 3.2297,
"WHIP": 1.2632,
"ER_per_IP": 0.35885,
"H_per_IP": 0.81818,
"BB_per_IP": 0.44498,
"SO_per_IP": 0.97608,
"HR_per_IP": 0.0933
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.029,
"predicted_H": 4.953,
"predicted_BB": 2.038,
"predicted_SO": 4.7,
"predicted_HR": 0.422,
"predicted_ERA": 3.2786,
"predicted_WHIP": 1.2553
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.029,
"final": 2.0168,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.953,
"final": 4.9728,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.038,
"final": 2.8629,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.7,
"final": 4.4057,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.422,
"final": 0.665,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2786,
"final": 3.2786,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2553,
"final": 1.2553,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 23,
"H": 49,
"BB": 20,
"SO": 44,
"HR": 4,
"ERA": 3.9554140127388533,
"WHIP": 1.3184713375796178,
"K9": 7.56687898089172,
"HR9": 0.6878980891719745,
"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-18T00:00:00"
},
"recent_form_boost": 0.9491557380773082,
"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": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "667755",
"player_name": "Jos\u00e9 Soriano",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"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": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 131,
"wins": 64,
"losses": 67,
"win_pct": 0.4885,
"runs_scored": 518.0,
"runs_allowed": 568.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3817,
"avg_runs_scored": 3.9542,
"avg_runs_allowed": 4.3359,
"offense_index": 0.8842,
"defense_index": 1.0315,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.6,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.0217
},
"opponent": {
"team": "NYY",
"games": 129,
"wins": 73,
"losses": 56,
"win_pct": 0.5659,
"runs_scored": 571.0,
"runs_allowed": 476.0,
"run_differential": 95.0,
"run_differential_per_game": 0.7364,
"avg_runs_scored": 4.4264,
"avg_runs_allowed": 3.6899,
"offense_index": 0.9897,
"defense_index": 1.212,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1816
},
"edges": {
"quality_edge": -0.2033,
"offense_edge": -0.1158,
"opponent_offense_edge": -0.0103,
"defense_strength": 0.0315,
"opponent_defense_weakness": -0.212,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9932,
"run_prevention": 1.0054,
"strikeout": 0.9947
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "667755",
"profile": {
"available": true,
"pitcher_id": "667755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 547.0,
"k_percent": 23.5,
"bb_percent": 10.7,
"woba": 0.291,
"xwoba": 0.326,
"sweet_spot_percent": 30.9,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 38.7,
"avg_best_speed": 77.7736,
"avg_hyper_speed": 94.2318,
"whiff_percent": 30.8,
"swing_percent": 46.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.0772,
"command_and_miss": 0.2736,
"regression_edge": -1.0,
"xwoba_edge": -0.4286,
"barrel_edge": -0.2,
"hard_hit_edge": -0.1429,
"whiff_edge": 0.7857,
"bb_edge": -0.425,
"pitch_design_score": 0.1523
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "667755",
"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": 92.64553570464022,
"release_spin_rate": 2060.0974446108107,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.64553570464022,
"release_spin_rate": 2060.0974446108107,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6455,
"release_spin_rate": 2060.0974,
"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.1523,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.088,
"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.0599,
"sample_weight": 1.0,
"run_prevention_factor": 1.0051,
"strikeout_factor": 1.0389,
"walk_factor": 1.034,
"homer_factor": 1.0346,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "667755",
"espn_id": 40973,
"player_name": "Jose Soriano",
"team": "TOR",
"role": "pitcher",
"espn_rank": 23,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 23,
"gp_value": 25.0,
"gp_rank": 256,
"gs_value": 25.0,
"gs_rank": 20,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 3.2296,
"era_rank": 16.0,
"w_value": 10.0,
"w_rank": 22,
"l_value": 6.0,
"l_rank": 94,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 139.1,
"ip_rank": 31,
"h_value": 114.0,
"h_rank": 67,
"er_value": 50.0,
"er_rank": 82,
"hr_value": 13.0,
"hr_rank": 101,
"bb_value": 62.0,
"bb_rank": 7,
"k_value": 136.0,
"k_rank": 33,
"k_per_9_value": 8.784689,
"k_per_9_rank": 28,
"whip_value": 1.2631,
"whip_rank": 41.0,
"war_value": 3.04,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0051,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0051,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.034,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0346,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0389,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 102,
"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/20260823_TOR@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"
}
} |
| 20260823 | 20260823_TOR@NYY | home | Carlos Rodón | Carlos Rodón | True | 5.2 | 4.0 | -5 | 3 | 1 | -2 | 4/2 | 3/2 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.218543046357616,
"WHIP": 1.2317880794701985,
"IP": 50.1,
"games_started": null,
"games_pitched": 10,
"role_avg_IP": 5.033,
"recent_avg_IP": 5.067,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.11,
"sample_weight": 0.772,
"run_prevention_factor": 0.9906,
"strikeout_factor": 1.0353,
"walk_factor": 1.0664,
"homer_factor": 0.9771,
"regression_flag": "neutral",
"k_percent": 26.5,
"bb_percent": 13.3,
"woba": 0.279,
"xwoba": 0.301,
"barrel_percent": 6.3,
"hard_hit_percent": 36.5,
"whiff_percent": 29.0
},
"espn_rank": {
"rank": 179,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 50.1,
"season_ERA": 3.219,
"season_WHIP": 1.232,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.5625,
"last_10": 0.43749999999999994
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607074",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 10,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 10.0,
"R": 12.0,
"H": 20.0,
"BB": 12.0,
"SO": 29.0,
"HR": 3.0,
"BF": 107.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.4,
"H": 4.0,
"BB": 2.4,
"SO": 5.8,
"HR": 0.6,
"BF": 21.4,
"Pitches": 88.8
},
"rates": {
"ERA": 3.5526,
"WHIP": 1.2632,
"ER_per_IP": 0.39474,
"H_per_IP": 0.78947,
"BB_per_IP": 0.47368,
"SO_per_IP": 1.14474,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 18.0,
"R": 21.0,
"H": 34.0,
"BB": 28.0,
"SO": 56.0,
"HR": 4.0,
"BF": 211.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.1,
"H": 3.4,
"BB": 2.8,
"SO": 5.6,
"HR": 0.4,
"BF": 21.1,
"Pitches": 89.4
},
"rates": {
"ERA": 3.2185,
"WHIP": 1.2318,
"ER_per_IP": 0.35762,
"H_per_IP": 0.6755,
"BB_per_IP": 0.55629,
"SO_per_IP": 1.11258,
"HR_per_IP": 0.07947
}
},
"season": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 18.0,
"R": 21.0,
"H": 34.0,
"BB": 28.0,
"SO": 56.0,
"HR": 4.0,
"BF": 211.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 2.1,
"H": 3.4,
"BB": 2.8,
"SO": 5.6,
"HR": 0.4,
"BF": 21.1,
"Pitches": 89.4
},
"rates": {
"ERA": 3.2185,
"WHIP": 1.2318,
"ER_per_IP": 0.35762,
"H_per_IP": 0.6755,
"BB_per_IP": 0.55629,
"SO_per_IP": 1.11258,
"HR_per_IP": 0.07947
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.191,
"predicted_H": 4.27,
"predicted_BB": 2.414,
"predicted_SO": 5.587,
"predicted_HR": 0.611,
"predicted_ERA": 3.7765,
"predicted_WHIP": 1.2799
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4908,
"form_weight": 0.5092,
"form_reliability": 0.6667,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.191,
"final": 2.5881,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.27,
"final": 4.1375,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.414,
"final": 2.7016,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.587,
"final": 4.8081,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.611,
"final": 0.8019,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7765,
"final": 3.7765,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2799,
"final": 1.2799,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.1,
"ER": 18,
"H": 34,
"BB": 28,
"SO": 56,
"HR": 4,
"ERA": 3.2185430463576163,
"WHIP": 1.2317880794701987,
"K9": 10.013245033112584,
"HR9": 0.7152317880794703,
"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-18T00:00:00"
},
"recent_form_boost": 0.8640906729066836,
"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": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6667,
"prior_weight": 0.3333
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607074",
"player_name": "Carlos Rod\u00f3n",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": "NYY",
"games": 129,
"wins": 73,
"losses": 56,
"win_pct": 0.5659,
"runs_scored": 571.0,
"runs_allowed": 476.0,
"run_differential": 95.0,
"run_differential_per_game": 0.7364,
"avg_runs_scored": 4.4264,
"avg_runs_allowed": 3.6899,
"offense_index": 0.9897,
"defense_index": 1.212,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.6,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1816
},
"opponent": {
"team": "TOR",
"games": 131,
"wins": 64,
"losses": 67,
"win_pct": 0.4885,
"runs_scored": 518.0,
"runs_allowed": 568.0,
"run_differential": -50.0,
"run_differential_per_game": -0.3817,
"avg_runs_scored": 3.9542,
"avg_runs_allowed": 4.3359,
"offense_index": 0.8842,
"defense_index": 1.0315,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.6,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.0217
},
"edges": {
"quality_edge": 0.2033,
"offense_edge": -0.0103,
"opponent_offense_edge": -0.1158,
"defense_strength": 0.212,
"opponent_defense_weakness": -0.0315,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0191,
"run_prevention": 0.9501,
"strikeout": 1.0154
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607074",
"profile": {
"available": true,
"pitcher_id": "607074",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 193.0,
"k_percent": 26.5,
"bb_percent": 13.3,
"woba": 0.279,
"xwoba": 0.301,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 36.5,
"avg_best_speed": 81.042,
"avg_hyper_speed": 93.8354,
"whiff_percent": 29.0,
"swing_percent": 47.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": 0.2461,
"command_and_miss": 0.2464,
"regression_edge": -0.6286,
"xwoba_edge": 0.2857,
"barrel_edge": 0.1778,
"hard_hit_edge": 0.1714,
"whiff_edge": 0.5286,
"bb_edge": -1.075,
"pitch_design_score": 0.0434
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607074",
"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": 90.70099033871995,
"release_spin_rate": 2307.103198635129,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.70099033871995,
"release_spin_rate": 2307.103198635129,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.701,
"release_spin_rate": 2307.1032,
"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.0434,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3102,
"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.11,
"sample_weight": 0.772,
"run_prevention_factor": 0.9906,
"strikeout_factor": 1.0353,
"walk_factor": 1.0664,
"homer_factor": 0.9771,
"woba_minus_xwoba": -0.022,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607074",
"espn_id": 33696,
"player_name": "Carlos Rodon",
"team": "NYY",
"role": "pitcher",
"espn_rank": 179,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 179,
"gp_value": 10.0,
"gp_rank": 503,
"gs_value": 10.0,
"gs_rank": 165,
"qs_value": 3.0,
"qs_rank": 132,
"era_value": 3.2185,
"era_rank": null,
"w_value": 4.0,
"w_rank": 168,
"l_value": 2.0,
"l_rank": 296,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 50.1,
"ip_rank": 261,
"h_value": 34.0,
"h_rank": 342,
"er_value": 18.0,
"er_rank": 319,
"hr_value": 4.0,
"hr_rank": 343,
"bb_value": 28.0,
"bb_rank": 154,
"k_value": 56.0,
"k_rank": 217,
"k_per_9_value": 10.013245,
"k_per_9_rank": 22,
"whip_value": 1.2317,
"whip_rank": null,
"war_value": 0.88,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9927,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9927,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0513,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9823,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0273,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"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/20260823_TOR@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"
}
} |
| 20260823 | 20260823_WAS@MIA | away | Jackson Kent | Jackson Kent | True | 3.2 | 4.2 | 3 | 3 | 3 | 0 | 6/4 | 0/3 | 3/5 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 9.391304347826086,
"WHIP": 2.4782608695652173,
"IP": 7.2,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 3.833,
"recent_avg_IP": 3.833,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3617,
"sample_weight": 0.45,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9805,
"walk_factor": 1.09,
"homer_factor": 1.0339,
"regression_flag": "positive_pitcher_regression",
"k_percent": 22.0,
"bb_percent": 19.5,
"woba": 0.421,
"xwoba": 0.377,
"barrel_percent": 4.2,
"hard_hit_percent": 50.0,
"whiff_percent": 17.9
},
"espn_rank": {
"rank": 673,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800600",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 7.2,
"ER": 8.0,
"R": 8.0,
"H": 11.0,
"BB": 8.0,
"SO": 9.0,
"HR": 1.0,
"BF": 41.0,
"Pitches": 162.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.5,
"BB": 4.0,
"SO": 4.5,
"HR": 0.5,
"BF": 20.5,
"Pitches": 81.0
},
"rates": {
"ERA": 9.3913,
"WHIP": 2.4783,
"ER_per_IP": 1.04348,
"H_per_IP": 1.43478,
"BB_per_IP": 1.04348,
"SO_per_IP": 1.17391,
"HR_per_IP": 0.13043
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 7.2,
"ER": 8.0,
"R": 8.0,
"H": 11.0,
"BB": 8.0,
"SO": 9.0,
"HR": 1.0,
"BF": 41.0,
"Pitches": 162.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.5,
"BB": 4.0,
"SO": 4.5,
"HR": 0.5,
"BF": 20.5,
"Pitches": 81.0
},
"rates": {
"ERA": 9.3913,
"WHIP": 2.4783,
"ER_per_IP": 1.04348,
"H_per_IP": 1.43478,
"BB_per_IP": 1.04348,
"SO_per_IP": 1.17391,
"HR_per_IP": 0.13043
}
},
"season": {
"games": 2,
"totals": {
"IP": 7.2,
"ER": 8.0,
"R": 8.0,
"H": 11.0,
"BB": 8.0,
"SO": 9.0,
"HR": 1.0,
"BF": 41.0,
"Pitches": 162.0
},
"per_game": {
"IP": 4.0,
"ER": 4.0,
"R": 4.0,
"H": 5.5,
"BB": 4.0,
"SO": 4.5,
"HR": 0.5,
"BF": 20.5,
"Pitches": 81.0
},
"rates": {
"ERA": 9.3913,
"WHIP": 2.4783,
"ER_per_IP": 1.04348,
"H_per_IP": 1.43478,
"BB_per_IP": 1.04348,
"SO_per_IP": 1.17391,
"HR_per_IP": 0.13043
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.626,
"predicted_H": 4.422,
"predicted_BB": 2.241,
"predicted_SO": 4.05,
"predicted_HR": 0.572,
"predicted_ERA": 5.9094,
"predicted_WHIP": 1.6659
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6518,
"form_weight": 0.3482,
"form_reliability": 0.2857,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 4.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.626,
"final": 2.8698,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.422,
"final": 5.4505,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.241,
"final": 0.7803,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.05,
"final": 3.3656,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.572,
"final": 0.851,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9094,
"final": 5.9094,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.6659,
"final": 1.6659,
"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": 7.2,
"ER": 8,
"H": 11,
"BB": 8,
"SO": 9,
"HR": 1,
"ERA": 9.391304347826088,
"WHIP": 2.4782608695652177,
"K9": 10.56521739130435,
"HR9": 1.173913043478261,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 1.1473922745839005,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800600",
"player_name": "Jackson Kent",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.0,
"after": 3.2,
"delta": -0.8,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 131,
"wins": 61,
"losses": 70,
"win_pct": 0.4656,
"runs_scored": 680.0,
"runs_allowed": 666.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1069,
"avg_runs_scored": 5.1908,
"avg_runs_allowed": 5.084,
"offense_index": 1.1595,
"defense_index": 0.8805,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.9,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1211
},
"opponent": {
"team": "MIA",
"games": 130,
"wins": 66,
"losses": 64,
"win_pct": 0.5077,
"runs_scored": 567.0,
"runs_allowed": 550.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1308,
"avg_runs_scored": 4.3615,
"avg_runs_allowed": 4.2308,
"offense_index": 0.9743,
"defense_index": 1.0581,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0226
},
"edges": {
"quality_edge": -0.1437,
"offense_edge": 0.1595,
"opponent_offense_edge": -0.0257,
"defense_strength": -0.1195,
"opponent_defense_weakness": -0.0581,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9917,
"run_prevention": 1.015,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800600",
"profile": {
"available": true,
"pitcher_id": "800600",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 19.0,
"k_percent": 22.0,
"bb_percent": 19.5,
"woba": 0.421,
"xwoba": 0.377,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 4.2,
"hard_hit_percent": 50.0,
"avg_best_speed": 79.4105,
"avg_hyper_speed": 95.8902,
"whiff_percent": 17.9,
"swing_percent": 41.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -1.2368,
"command_and_miss": -0.8829,
"regression_edge": 1.2571,
"xwoba_edge": -1.8857,
"barrel_edge": 0.6444,
"hard_hit_edge": -1.7571,
"whiff_edge": -1.0571,
"bb_edge": -2.5,
"pitch_design_score": -0.0919
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800600",
"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": 88.28461538461538,
"release_spin_rate": 2096.4102564102564,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.28461538461538,
"release_spin_rate": 2096.4102564102564,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2846,
"release_spin_rate": 2096.4103,
"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.0919,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6564,
"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.3617,
"sample_weight": 0.45,
"run_prevention_factor": 1.0307,
"strikeout_factor": 0.9805,
"walk_factor": 1.09,
"homer_factor": 1.0339,
"woba_minus_xwoba": 0.044,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "800600",
"espn_id": 5007807,
"player_name": "Jackson Kent",
"team": "WSH",
"role": "pitcher",
"espn_rank": 673,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 673,
"gp_value": 2.0,
"gp_rank": 718,
"gs_value": 2.0,
"gs_rank": 263,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 9.3913,
"era_rank": null,
"w_value": 0.0,
"w_rank": 500,
"l_value": 1.0,
"l_rank": 397,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 7.2,
"ip_rank": 624,
"h_value": 11.0,
"h_rank": 590,
"er_value": 8.0,
"er_rank": 547,
"hr_value": 1.0,
"hr_rank": 582,
"bb_value": 8.0,
"bb_rank": 497,
"k_value": 9.0,
"k_rank": 573,
"k_per_9_value": 10.565217,
"k_per_9_rank": 24,
"whip_value": 2.4782,
"whip_rank": null,
"war_value": -0.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0138,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0138,
"adjusted": 5
},
"predicted_BB": {
"original": 4.0,
"factor": 1.0405,
"adjusted": 4
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0153,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9912,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 81,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260823_WAS@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"
}
} |
| 20260823 | 20260823_WAS@MIA | home | Janson Junk | Janson Junk | True | 5.1 | 4.2 | -2 | 1 | 1 | 0 | 2/2 | 1/0 | 6/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.370503597122302,
"WHIP": 1.3597122302158273,
"IP": 92.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.148,
"recent_avg_IP": 4.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2307,
"sample_weight": 1.0,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9103,
"walk_factor": 0.952,
"homer_factor": 1.0108,
"regression_flag": "neutral",
"k_percent": 16.7,
"bb_percent": 6.6,
"woba": 0.329,
"xwoba": 0.316,
"barrel_percent": 6.6,
"hard_hit_percent": 40.4,
"whiff_percent": 15.1
},
"espn_rank": {
"rank": 274,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676083",
"report_date": "20260823",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 6.0,
"R": 8.0,
"H": 27.0,
"BB": 6.0,
"SO": 15.0,
"HR": 1.0,
"BF": 101.0,
"Pitches": 370.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.6,
"H": 5.4,
"BB": 1.2,
"SO": 3.0,
"HR": 0.2,
"BF": 20.2,
"Pitches": 74.0
},
"rates": {
"ERA": 2.2817,
"WHIP": 1.3944,
"ER_per_IP": 0.25352,
"H_per_IP": 1.14085,
"BB_per_IP": 0.25352,
"SO_per_IP": 0.6338,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.1,
"ER": 29.0,
"R": 32.0,
"H": 61.0,
"BB": 16.0,
"SO": 33.0,
"HR": 8.0,
"BF": 215.0,
"Pitches": 808.0
},
"per_game": {
"IP": 4.2,
"ER": 2.9,
"R": 3.2,
"H": 6.1,
"BB": 1.6,
"SO": 3.3,
"HR": 0.8,
"BF": 21.5,
"Pitches": 80.8
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5931,
"ER_per_IP": 0.6,
"H_per_IP": 1.26207,
"BB_per_IP": 0.33103,
"SO_per_IP": 0.68276,
"HR_per_IP": 0.16552
}
},
"season": {
"games": 18,
"totals": {
"IP": 92.2,
"ER": 45.0,
"R": 50.0,
"H": 100.0,
"BB": 26.0,
"SO": 66.0,
"HR": 12.0,
"BF": 396.0,
"Pitches": 1484.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.7778,
"H": 5.5556,
"BB": 1.4444,
"SO": 3.6667,
"HR": 0.6667,
"BF": 22.0,
"Pitches": 82.4444
},
"rates": {
"ERA": 4.3705,
"WHIP": 1.3597,
"ER_per_IP": 0.48561,
"H_per_IP": 1.07914,
"BB_per_IP": 0.28058,
"SO_per_IP": 0.71223,
"HR_per_IP": 0.1295
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.102,
"predicted_H": 5.405,
"predicted_BB": 1.455,
"predicted_SO": 3.487,
"predicted_HR": 0.54,
"predicted_ERA": 3.9487,
"predicted_WHIP": 1.4318
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.102,
"final": 1.6151,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.405,
"final": 3.9005,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.455,
"final": 1.254,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.487,
"final": 4.5974,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.54,
"final": 0.3014,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9487,
"final": 3.9487,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4318,
"final": 1.4318,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.1,
"ER": 29,
"H": 61,
"BB": 16,
"SO": 33,
"HR": 8,
"ERA": 5.3999999999999995,
"WHIP": 1.593103448275862,
"K9": 6.144827586206897,
"HR9": 1.489655172413793,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-17T00:00:00"
},
"recent_form_boost": 1.1185374644115933,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.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": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 130,
"wins": 66,
"losses": 64,
"win_pct": 0.5077,
"runs_scored": 567.0,
"runs_allowed": 550.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1308,
"avg_runs_scored": 4.3615,
"avg_runs_allowed": 4.2308,
"offense_index": 0.9743,
"defense_index": 1.0581,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.1,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0226
},
"opponent": {
"team": "WAS",
"games": 131,
"wins": 61,
"losses": 70,
"win_pct": 0.4656,
"runs_scored": 680.0,
"runs_allowed": 666.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1069,
"avg_runs_scored": 5.1908,
"avg_runs_allowed": 5.084,
"offense_index": 1.1595,
"defense_index": 0.8805,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.9,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.1211
},
"edges": {
"quality_edge": 0.1437,
"offense_edge": -0.0257,
"opponent_offense_edge": 0.1595,
"defense_strength": 0.0581,
"opponent_defense_weakness": 0.1195,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0011,
"run_prevention": 1.0125,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 350.0,
"k_percent": 16.7,
"bb_percent": 6.6,
"woba": 0.329,
"xwoba": 0.316,
"sweet_spot_percent": 29.1,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 40.4,
"avg_best_speed": 79.5111,
"avg_hyper_speed": 94.7059,
"whiff_percent": 15.1,
"swing_percent": 48.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.2,
"bb_percent": 9.0,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.7,
"avg_best_speed": 77.5038,
"avg_hyper_speed": 93.8923,
"whiff_percent": 25.3,
"swing_percent": 47.5
},
"components": {
"contact_quality": -0.1213,
"command_and_miss": -0.7436,
"regression_edge": 0.3714,
"xwoba_edge": -0.1429,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.3857,
"whiff_edge": -1.4571,
"bb_edge": 0.6,
"pitch_design_score": -0.0822
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"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.45699971989913,
"release_spin_rate": 2208.3622949828805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.45699971989913,
"release_spin_rate": 2208.3622949828805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.457,
"release_spin_rate": 2208.3623,
"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.0822,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5874,
"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.2307,
"sample_weight": 1.0,
"run_prevention_factor": 1.0196,
"strikeout_factor": 0.9103,
"walk_factor": 0.952,
"homer_factor": 1.0108,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676083",
"espn_id": 4881980,
"player_name": "Janson Junk",
"team": "MIA",
"role": "pitcher",
"espn_rank": 274,
"espn_total_ranked": 825,
"metrics": {
"espn_rank": 274,
"gp_value": 18.0,
"gp_rank": 384,
"gs_value": 18.0,
"gs_rank": 102,
"qs_value": 3.0,
"qs_rank": 132,
"era_value": 4.3705,
"era_rank": null,
"w_value": 6.0,
"w_rank": 92,
"l_value": 8.0,
"l_rank": 34,
"sv_value": 0.0,
"sv_rank": 240,
"hld_value": 0.0,
"hld_rank": 327,
"ip_value": 92.2,
"ip_rank": 117,
"h_value": 100.0,
"h_rank": 95,
"er_value": 45.0,
"er_rank": 105,
"hr_value": 12.0,
"hr_rank": 118,
"bb_value": 26.0,
"bb_rank": 179,
"k_value": 66.0,
"k_rank": 167,
"k_per_9_value": 6.410072,
"k_per_9_rank": 38,
"whip_value": 1.3597,
"whip_rank": null,
"war_value": 0.38,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0196,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0196,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0108,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9103,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 81,
"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/20260823_WAS@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"
}
} |