| 20260905 | 20260905_ARI@HOU | away | Brandon Pfaadt | Brandon Pfaadt | True | 6.1 | 6.1 | 0 | 4 | 3 | -1 | 3/7 | 0/2 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4864864864864864,
"WHIP": 1.135135135135135,
"IP": 111.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.978,
"recent_avg_IP": 6.467,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.94,
"walk_factor": 0.934,
"homer_factor": 0.976,
"regression_flag": "neutral",
"k_percent": 16.0,
"bb_percent": 5.9,
"woba": 0.293,
"xwoba": 0.3,
"barrel_percent": 7.7,
"hard_hit_percent": 33.7,
"whiff_percent": 20.7
},
"espn_rank": {
"rank": 105,
"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": "694297",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.1,
"ER": 11.0,
"R": 11.0,
"H": 22.0,
"BB": 5.0,
"SO": 21.0,
"HR": 5.0,
"BF": 122.0,
"Pitches": 464.0
},
"per_game": {
"IP": 6.1,
"ER": 2.2,
"R": 2.2,
"H": 4.4,
"BB": 1.0,
"SO": 4.2,
"HR": 1.0,
"BF": 24.4,
"Pitches": 92.8
},
"rates": {
"ERA": 3.0619,
"WHIP": 0.8351,
"ER_per_IP": 0.34021,
"H_per_IP": 0.68041,
"BB_per_IP": 0.15464,
"SO_per_IP": 0.64948,
"HR_per_IP": 0.15464
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.2,
"ER": 17.0,
"R": 18.0,
"H": 52.0,
"BB": 9.0,
"SO": 34.0,
"HR": 5.0,
"BF": 246.0,
"Pitches": 906.0
},
"per_game": {
"IP": 6.1,
"ER": 1.7,
"R": 1.8,
"H": 5.2,
"BB": 0.9,
"SO": 3.4,
"HR": 0.5,
"BF": 24.6,
"Pitches": 90.6
},
"rates": {
"ERA": 2.4415,
"WHIP": 0.9734,
"ER_per_IP": 0.27128,
"H_per_IP": 0.82979,
"BB_per_IP": 0.14362,
"SO_per_IP": 0.54255,
"HR_per_IP": 0.07979
}
},
"season": {
"games": 25,
"totals": {
"IP": 111.0,
"ER": 43.0,
"R": 47.0,
"H": 99.0,
"BB": 27.0,
"SO": 73.0,
"HR": 13.0,
"BF": 455.0,
"Pitches": 1671.0
},
"per_game": {
"IP": 4.1,
"ER": 1.72,
"R": 1.88,
"H": 3.96,
"BB": 1.08,
"SO": 2.92,
"HR": 0.52,
"BF": 18.2,
"Pitches": 66.84
},
"rates": {
"ERA": 3.4865,
"WHIP": 1.1351,
"ER_per_IP": 0.38739,
"H_per_IP": 0.89189,
"BB_per_IP": 0.24324,
"SO_per_IP": 0.65766,
"HR_per_IP": 0.11712
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.125,
"predicted_H": 4.846,
"predicted_BB": 1.214,
"predicted_SO": 4.006,
"predicted_HR": 0.75,
"predicted_ERA": 3.1876,
"predicted_WHIP": 1.0099
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.0,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.125,
"final": 2.9133,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.846,
"final": 4.0699,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.214,
"final": 0.7036,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.006,
"final": 5.6852,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.75,
"final": 1.2755,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1876,
"final": 3.1876,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0099,
"final": 1.0099,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.2,
"ER": 17,
"H": 52,
"BB": 9,
"SO": 34,
"HR": 5,
"ERA": 2.4414893617021276,
"WHIP": 0.9734042553191489,
"K9": 4.882978723404255,
"HR9": 0.7180851063829786,
"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-31T00:00:00"
},
"recent_form_boost": 0.7747410613829996,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 8.0,
"predicted_HR": 2.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": "694297",
"player_name": "Brandon Pfaadt",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.3333,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 6.1,
"predicted_R": 4.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 629.0,
"runs_allowed": 632.0,
"run_differential": -3.0,
"run_differential_per_game": -0.0211,
"avg_runs_scored": 4.4296,
"avg_runs_allowed": 4.4507,
"offense_index": 0.9892,
"defense_index": 1.0062,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0153
},
"opponent": {
"team": "HOU",
"games": 142,
"wins": 73,
"losses": 69,
"win_pct": 0.5141,
"runs_scored": 642.0,
"runs_allowed": 678.0,
"run_differential": -36.0,
"run_differential_per_game": -0.2535,
"avg_runs_scored": 4.5211,
"avg_runs_allowed": 4.7746,
"offense_index": 1.0096,
"defense_index": 0.9379,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0509
},
"edges": {
"quality_edge": -0.0356,
"offense_edge": -0.0108,
"opponent_offense_edge": 0.0096,
"defense_strength": 0.0062,
"opponent_defense_weakness": 0.0621,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 1.0027,
"strikeout": 0.9982
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694297",
"profile": {
"available": true,
"pitcher_id": "694297",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 400.0,
"k_percent": 16.0,
"bb_percent": 5.9,
"woba": 0.293,
"xwoba": 0.3,
"sweet_spot_percent": 30.6,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 33.7,
"avg_best_speed": 77.7498,
"avg_hyper_speed": 93.3161,
"whiff_percent": 20.7,
"swing_percent": 48.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2871,
"command_and_miss": -0.4457,
"regression_edge": -0.2,
"xwoba_edge": 0.3143,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.6429,
"bb_edge": 0.825,
"pitch_design_score": -0.0457
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694297",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.05610692018405,
"release_spin_rate": 2453.8790078891307,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.05610692018405,
"release_spin_rate": 2453.8790078891307,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0561,
"release_spin_rate": 2453.879,
"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.0457,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3265,
"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.0212,
"sample_weight": 1.0,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.94,
"walk_factor": 0.934,
"homer_factor": 0.976,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694297",
"espn_id": 4721302,
"player_name": "Brandon Pfaadt",
"team": "ARI",
"role": "pitcher",
"espn_rank": 105,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 105,
"gp_value": 25.0,
"gp_rank": 308,
"gs_value": 15.0,
"gs_rank": 132,
"qs_value": 7.0,
"qs_rank": 77,
"era_value": 3.4864,
"era_rank": null,
"w_value": 7.0,
"w_rank": 81,
"l_value": 2.0,
"l_rank": 323,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 2.0,
"hld_rank": 226,
"ip_value": 111.0,
"ip_rank": 103,
"h_value": 99.0,
"h_rank": 110,
"er_value": 43.0,
"er_rank": 134,
"hr_value": 13.0,
"hr_rank": 113,
"bb_value": 27.0,
"bb_rank": 188,
"k_value": 73.0,
"k_rank": 162,
"k_per_9_value": 5.918919,
"k_per_9_rank": 42,
"whip_value": 1.1351,
"whip_rank": null,
"war_value": 1.68,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9982,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9982,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.934,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.94,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260905_ARI@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"
}
} |
| 20260905 | 20260905_ARI@HOU | home | Ethan Pecko | Ethan Pecko | True | 4.0 | 4.1 | 1 | 4 | 1 | -3 | 6/5 | 2/1 | 5/2 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 6.230769230769231,
"WHIP": 1.5384615384615385,
"IP": 13.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5342,
"sample_weight": 0.45,
"run_prevention_factor": 1.0454,
"strikeout_factor": 0.99,
"walk_factor": 1.0567,
"homer_factor": 1.0933,
"regression_flag": "neutral",
"k_percent": 15.5,
"bb_percent": 15.5,
"woba": 0.376,
"xwoba": 0.4,
"barrel_percent": 10.3,
"hard_hit_percent": 51.3,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 649,
"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": "814490",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 13.0,
"ER": 9.0,
"R": 10.0,
"H": 11.0,
"BB": 9.0,
"SO": 9.0,
"HR": 4.0,
"BF": 58.0,
"Pitches": 260.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.3333,
"H": 3.6667,
"BB": 3.0,
"SO": 3.0,
"HR": 1.3333,
"BF": 19.3333,
"Pitches": 86.6667
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.5385,
"ER_per_IP": 0.69231,
"H_per_IP": 0.84615,
"BB_per_IP": 0.69231,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.30769
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 13.0,
"ER": 9.0,
"R": 10.0,
"H": 11.0,
"BB": 9.0,
"SO": 9.0,
"HR": 4.0,
"BF": 58.0,
"Pitches": 260.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.3333,
"H": 3.6667,
"BB": 3.0,
"SO": 3.0,
"HR": 1.3333,
"BF": 19.3333,
"Pitches": 86.6667
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.5385,
"ER_per_IP": 0.69231,
"H_per_IP": 0.84615,
"BB_per_IP": 0.69231,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.30769
}
},
"season": {
"games": 3,
"totals": {
"IP": 13.0,
"ER": 9.0,
"R": 10.0,
"H": 11.0,
"BB": 9.0,
"SO": 9.0,
"HR": 4.0,
"BF": 58.0,
"Pitches": 260.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.3333,
"H": 3.6667,
"BB": 3.0,
"SO": 3.0,
"HR": 1.3333,
"BF": 19.3333,
"Pitches": 86.6667
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.5385,
"ER_per_IP": 0.69231,
"H_per_IP": 0.84615,
"BB_per_IP": 0.69231,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.30769
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.591,
"predicted_H": 4.196,
"predicted_BB": 2.233,
"predicted_SO": 3.84,
"predicted_HR": 0.937,
"predicted_ERA": 5.1346,
"predicted_WHIP": 1.4156
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.591,
"final": 3.4562,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.196,
"final": 5.3038,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.233,
"final": 2.0899,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.84,
"final": 4.5523,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.937,
"final": 0.9757,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1346,
"final": 5.1346,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4156,
"final": 1.4156,
"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": 13.0,
"ER": 9,
"H": 11,
"BB": 9,
"SO": 9,
"HR": 4,
"ERA": 6.230769230769232,
"WHIP": 1.5384615384615388,
"K9": 6.230769230769232,
"HR9": 2.7692307692307696,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.091458784649233,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "814490",
"player_name": "Ethan Pecko",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 142,
"wins": 73,
"losses": 69,
"win_pct": 0.5141,
"runs_scored": 642.0,
"runs_allowed": 678.0,
"run_differential": -36.0,
"run_differential_per_game": -0.2535,
"avg_runs_scored": 4.5211,
"avg_runs_allowed": 4.7746,
"offense_index": 1.0096,
"defense_index": 0.9379,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 3.1,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0509
},
"opponent": {
"team": "ARI",
"games": 142,
"wins": 74,
"losses": 68,
"win_pct": 0.5211,
"runs_scored": 629.0,
"runs_allowed": 632.0,
"run_differential": -3.0,
"run_differential_per_game": -0.0211,
"avg_runs_scored": 4.4296,
"avg_runs_allowed": 4.4507,
"offense_index": 0.9892,
"defense_index": 1.0062,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.6,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0153
},
"edges": {
"quality_edge": 0.0356,
"offense_edge": 0.0096,
"opponent_offense_edge": -0.0108,
"defense_strength": -0.0621,
"opponent_defense_weakness": -0.0062,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0,
"run_prevention": 1.0027,
"strikeout": 1.0019
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "814490",
"profile": {
"available": true,
"pitcher_id": "814490",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 18.0,
"k_percent": 15.5,
"bb_percent": 15.5,
"woba": 0.376,
"xwoba": 0.4,
"sweet_spot_percent": 38.5,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 51.3,
"avg_best_speed": 83.0251,
"avg_hyper_speed": 95.6572,
"whiff_percent": 27.8,
"swing_percent": 44.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.7237,
"command_and_miss": -0.6029,
"regression_edge": -0.6857,
"xwoba_edge": -2.5,
"barrel_edge": -0.6889,
"hard_hit_edge": -1.9286,
"whiff_edge": 0.3714,
"bb_edge": -1.575,
"pitch_design_score": 0.0442
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "814490",
"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.66179775280898,
"release_spin_rate": 2286.494382022472,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.66179775280898,
"release_spin_rate": 2286.494382022472,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6618,
"release_spin_rate": 2286.4944,
"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.0442,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3157,
"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.5342,
"sample_weight": 0.45,
"run_prevention_factor": 1.0454,
"strikeout_factor": 0.99,
"walk_factor": 1.0567,
"homer_factor": 1.0933,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "814490",
"espn_id": 4944276,
"player_name": "Ethan Pecko",
"team": "HOU",
"role": "pitcher",
"espn_rank": 649,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 649,
"gp_value": 3.0,
"gp_rank": 701,
"gs_value": 3.0,
"gs_rank": 251,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 6.2307,
"era_rank": null,
"w_value": 1.0,
"w_rank": 404,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 13.0,
"ip_rank": 573,
"h_value": 11.0,
"h_rank": 613,
"er_value": 9.0,
"er_rank": 549,
"hr_value": 4.0,
"hr_rank": 365,
"bb_value": 9.0,
"bb_rank": 499,
"k_value": 9.0,
"k_rank": 598,
"k_per_9_value": 6.230769,
"k_per_9_rank": 28,
"whip_value": 1.5384,
"whip_rank": null,
"war_value": -0.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0204,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0204,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0255,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.042,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9955,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"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": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260905_ARI@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"
}
} |
| 20260905 | 20260905_ATL@PHI | away | Martín Pérez | Martín Pérez | True | 5.2 | 3.2 | -6 | 2 | 4 | 2 | 4/7 | 3/4 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.049586776859504,
"WHIP": 1.2148760330578512,
"IP": 121.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.076,
"recent_avg_IP": 4.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2233,
"sample_weight": 1.0,
"run_prevention_factor": 1.019,
"strikeout_factor": 0.9606,
"walk_factor": 1.016,
"homer_factor": 0.9775,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.2,
"bb_percent": 10.0,
"woba": 0.293,
"xwoba": 0.327,
"barrel_percent": 5.1,
"hard_hit_percent": 38.0,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 55,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 121.0,
"season_ERA": 3.05,
"season_WHIP": 1.215,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "527048",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 6.0,
"R": 9.0,
"H": 22.0,
"BB": 11.0,
"SO": 16.0,
"HR": 1.0,
"BF": 101.0,
"Pitches": 379.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.8,
"H": 4.4,
"BB": 2.2,
"SO": 3.2,
"HR": 0.2,
"BF": 20.2,
"Pitches": 75.8
},
"rates": {
"ERA": 2.2817,
"WHIP": 1.3944,
"ER_per_IP": 0.25352,
"H_per_IP": 0.92958,
"BB_per_IP": 0.46479,
"SO_per_IP": 0.67606,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 17.0,
"R": 21.0,
"H": 43.0,
"BB": 23.0,
"SO": 31.0,
"HR": 5.0,
"BF": 209.0,
"Pitches": 781.0
},
"per_game": {
"IP": 5.0,
"ER": 1.7,
"R": 2.1,
"H": 4.3,
"BB": 2.3,
"SO": 3.1,
"HR": 0.5,
"BF": 20.9,
"Pitches": 78.1
},
"rates": {
"ERA": 3.1224,
"WHIP": 1.3469,
"ER_per_IP": 0.34694,
"H_per_IP": 0.87755,
"BB_per_IP": 0.46939,
"SO_per_IP": 0.63265,
"HR_per_IP": 0.10204
}
},
"season": {
"games": 26,
"totals": {
"IP": 121.0,
"ER": 41.0,
"R": 45.0,
"H": 97.0,
"BB": 50.0,
"SO": 91.0,
"HR": 12.0,
"BF": 499.0,
"Pitches": 1901.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5769,
"R": 1.7308,
"H": 3.7308,
"BB": 1.9231,
"SO": 3.5,
"HR": 0.4615,
"BF": 19.1923,
"Pitches": 73.1154
},
"rates": {
"ERA": 3.0496,
"WHIP": 1.2149,
"ER_per_IP": 0.33884,
"H_per_IP": 0.80165,
"BB_per_IP": 0.41322,
"SO_per_IP": 0.75207,
"HR_per_IP": 0.09917
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.648,
"predicted_H": 4.431,
"predicted_BB": 2.179,
"predicted_SO": 3.538,
"predicted_HR": 0.424,
"predicted_ERA": 3.0114,
"predicted_WHIP": 1.3419
}
},
"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.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.648,
"final": 1.7952,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.431,
"final": 4.2508,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.179,
"final": 2.5223,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.538,
"final": 2.8949,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.424,
"final": 0.6649,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0114,
"final": 3.0114,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3419,
"final": 1.3419,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 17,
"H": 43,
"BB": 23,
"SO": 31,
"HR": 5,
"ERA": 3.1224489795918364,
"WHIP": 1.3469387755102038,
"K9": 5.693877551020408,
"HR9": 0.9183673469387754,
"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-29T00:00:00"
},
"recent_form_boost": 0.8606873814003683,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 2.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": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "527048",
"player_name": "Mart\u00edn P\u00e9rez",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 4.0,
"delta": 2.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 658.0,
"runs_allowed": 537.0,
"run_differential": 121.0,
"run_differential_per_game": 0.8582,
"avg_runs_scored": 4.6667,
"avg_runs_allowed": 3.8085,
"offense_index": 1.0421,
"defense_index": 1.1758,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.3,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.2917
},
"opponent": {
"team": "PHI",
"games": 141,
"wins": 79,
"losses": 62,
"win_pct": 0.5603,
"runs_scored": 633.0,
"runs_allowed": 600.0,
"run_differential": 33.0,
"run_differential_per_game": 0.234,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 4.2553,
"offense_index": 1.0025,
"defense_index": 1.0523,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.115
},
"edges": {
"quality_edge": 0.1767,
"offense_edge": 0.0421,
"opponent_offense_edge": 0.0025,
"defense_strength": 0.1758,
"opponent_defense_weakness": -0.0523,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0122,
"run_prevention": 0.974,
"strikeout": 1.0051
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "527048",
"profile": {
"available": true,
"pitcher_id": "527048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 452.0,
"k_percent": 18.2,
"bb_percent": 10.0,
"woba": 0.293,
"xwoba": 0.327,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 38.0,
"avg_best_speed": 76.2714,
"avg_hyper_speed": 94.0132,
"whiff_percent": 22.1,
"swing_percent": 43.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0161,
"command_and_miss": -0.4393,
"regression_edge": -0.9714,
"xwoba_edge": -0.4571,
"barrel_edge": 0.4667,
"hard_hit_edge": -0.0286,
"whiff_edge": -0.4429,
"bb_edge": -0.2,
"pitch_design_score": -0.2621
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "527048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 85.19235523869571,
"release_spin_rate": 1970.9370569367027,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1924,
"release_spin_rate": 1970.9371,
"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.2621,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.872,
"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.2233,
"sample_weight": 1.0,
"run_prevention_factor": 1.019,
"strikeout_factor": 0.9606,
"walk_factor": 1.016,
"homer_factor": 0.9775,
"woba_minus_xwoba": -0.034,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "527048",
"espn_id": 31098,
"player_name": "Martin Perez",
"team": "ATL",
"role": "pitcher",
"espn_rank": 55,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 55,
"gp_value": 26.0,
"gp_rank": 285,
"gs_value": 22.0,
"gs_rank": 83,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 3.0495,
"era_rank": null,
"w_value": 8.0,
"w_rank": 61,
"l_value": 8.0,
"l_rank": 50,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 121.0,
"ip_rank": 90,
"h_value": 97.0,
"h_rank": 114,
"er_value": 41.0,
"er_rank": 141,
"hr_value": 12.0,
"hr_rank": 126,
"bb_value": 50.0,
"bb_rank": 33,
"k_value": 91.0,
"k_rank": 116,
"k_per_9_value": 6.7685947,
"k_per_9_rank": 34,
"whip_value": 1.2148,
"whip_rank": null,
"war_value": 2.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.019,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 1.019,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.016,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9775,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9606,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260905_ATL@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"
}
} |
| 20260905 | 20260905_ATL@PHI | home | Zack Wheeler | Zack Wheeler | True | 5.1 | 6.0 | 2 | 3 | 1 | -2 | 5/3 | 4/2 | 3/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3145780051150893,
"WHIP": 1.0895140664961636,
"IP": 130.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.667,
"recent_avg_IP": 5.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6615,
"sample_weight": 1.0,
"run_prevention_factor": 0.9438,
"strikeout_factor": 1.0743,
"walk_factor": 0.972,
"homer_factor": 0.9325,
"regression_flag": "neutral",
"k_percent": 29.4,
"bb_percent": 7.8,
"woba": 0.289,
"xwoba": 0.271,
"barrel_percent": 6.2,
"hard_hit_percent": 35.1,
"whiff_percent": 30.8
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "554430",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 19.0,
"R": 20.0,
"H": 28.0,
"BB": 18.0,
"SO": 28.0,
"HR": 6.0,
"BF": 121.0,
"Pitches": 509.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.0,
"H": 5.6,
"BB": 3.6,
"SO": 5.6,
"HR": 1.2,
"BF": 24.2,
"Pitches": 101.8
},
"rates": {
"ERA": 6.75,
"WHIP": 1.8158,
"ER_per_IP": 0.75,
"H_per_IP": 1.10526,
"BB_per_IP": 0.71053,
"SO_per_IP": 1.10526,
"HR_per_IP": 0.23684
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 27.0,
"R": 28.0,
"H": 46.0,
"BB": 21.0,
"SO": 70.0,
"HR": 10.0,
"BF": 216.0,
"Pitches": 902.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 2.8,
"H": 4.6,
"BB": 2.1,
"SO": 7.0,
"HR": 1.0,
"BF": 21.6,
"Pitches": 90.2
},
"rates": {
"ERA": 4.8278,
"WHIP": 1.3311,
"ER_per_IP": 0.53642,
"H_per_IP": 0.91391,
"BB_per_IP": 0.41722,
"SO_per_IP": 1.39073,
"HR_per_IP": 0.19868
}
},
"season": {
"games": 23,
"totals": {
"IP": 130.1,
"ER": 48.0,
"R": 49.0,
"H": 101.0,
"BB": 41.0,
"SO": 154.0,
"HR": 19.0,
"BF": 524.0,
"Pitches": 2155.0
},
"per_game": {
"IP": 5.2,
"ER": 2.087,
"R": 2.1304,
"H": 4.3913,
"BB": 1.7826,
"SO": 6.6957,
"HR": 0.8261,
"BF": 22.7826,
"Pitches": 93.6957
},
"rates": {
"ERA": 3.3146,
"WHIP": 1.0895,
"ER_per_IP": 0.36829,
"H_per_IP": 0.77494,
"BB_per_IP": 0.31458,
"SO_per_IP": 1.18159,
"HR_per_IP": 0.14578
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.002,
"predicted_H": 5.024,
"predicted_BB": 2.588,
"predicted_SO": 6.047,
"predicted_HR": 1.006,
"predicted_ERA": 5.227,
"predicted_WHIP": 1.4725
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.002,
"final": 3.4266,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.024,
"final": 5.0138,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.588,
"final": 3.1887,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 6.047,
"final": 4.3252,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.006,
"final": 0.578,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.227,
"final": 5.227,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4725,
"final": 1.4725,
"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": 27,
"H": 46,
"BB": 21,
"SO": 70,
"HR": 10,
"ERA": 4.827814569536424,
"WHIP": 1.3311258278145697,
"K9": 12.51655629139073,
"HR9": 1.7880794701986757,
"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-30T00:00:00"
},
"recent_form_boost": 1.0521456865767436,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "554430",
"player_name": "Zack Wheeler",
"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": 4.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": "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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 6.0,
"delta": 4.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 141,
"wins": 79,
"losses": 62,
"win_pct": 0.5603,
"runs_scored": 633.0,
"runs_allowed": 600.0,
"run_differential": 33.0,
"run_differential_per_game": 0.234,
"avg_runs_scored": 4.4894,
"avg_runs_allowed": 4.2553,
"offense_index": 1.0025,
"defense_index": 1.0523,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 2.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.115
},
"opponent": {
"team": "ATL",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 658.0,
"runs_allowed": 537.0,
"run_differential": 121.0,
"run_differential_per_game": 0.8582,
"avg_runs_scored": 4.6667,
"avg_runs_allowed": 3.8085,
"offense_index": 1.0421,
"defense_index": 1.1758,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.3,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.2917
},
"edges": {
"quality_edge": -0.1767,
"offense_edge": 0.0025,
"opponent_offense_edge": 0.0421,
"defense_strength": 0.0523,
"opponent_defense_weakness": -0.1758,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0103,
"strikeout": 0.9913
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "554430",
"profile": {
"available": true,
"pitcher_id": "554430",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 473.0,
"k_percent": 29.4,
"bb_percent": 7.8,
"woba": 0.289,
"xwoba": 0.271,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 35.1,
"avg_best_speed": 74.7481,
"avg_hyper_speed": 93.4036,
"whiff_percent": 30.8,
"swing_percent": 49.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7047,
"command_and_miss": 0.8257,
"regression_edge": 0.5143,
"xwoba_edge": 1.1429,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.3857,
"whiff_edge": 0.8,
"bb_edge": 0.35,
"pitch_design_score": 0.0095
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "554430",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04289921739226,
"release_spin_rate": 2372.877200953717,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 90.04289921739226,
"release_spin_rate": 2372.877200953717,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0429,
"release_spin_rate": 2372.8772,
"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.0095,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0682,
"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.6615,
"sample_weight": 1.0,
"run_prevention_factor": 0.9438,
"strikeout_factor": 1.0743,
"walk_factor": 0.972,
"homer_factor": 0.9325,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "554430",
"espn_id": 31267,
"player_name": "Zack Wheeler",
"team": "PHI",
"role": "pitcher",
"espn_rank": 12,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 12,
"gp_value": 23.0,
"gp_rank": 340,
"gs_value": 23.0,
"gs_rank": 74,
"qs_value": 13.0,
"qs_rank": 27,
"era_value": 3.3145,
"era_rank": null,
"w_value": 11.0,
"w_rank": 20,
"l_value": 5.0,
"l_rank": 131,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 130.1,
"ip_rank": 73,
"h_value": 101.0,
"h_rank": 106,
"er_value": 48.0,
"er_rank": 108,
"hr_value": 19.0,
"hr_rank": 41,
"bb_value": 41.0,
"bb_rank": 75,
"k_value": 154.0,
"k_rank": 24,
"k_per_9_value": 10.634271,
"k_per_9_rank": 8,
"whip_value": 1.0895,
"whip_rank": null,
"war_value": 4.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9438,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9438,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 0.972,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9325,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0743,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260905_ATL@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"
}
} |
| 20260905 | 20260905_BOS@BAL | away | Sonny Gray | Sonny Gray | True | 6.0 | 7.0 | 3 | 3 | 0 | -3 | 4/3 | 2/3 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8190255220417635,
"WHIP": 1.1763341067285384,
"IP": 143.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.747,
"recent_avg_IP": 6.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1111,
"sample_weight": 1.0,
"run_prevention_factor": 0.9906,
"strikeout_factor": 0.9874,
"walk_factor": 0.942,
"homer_factor": 0.9805,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.3,
"woba": 0.301,
"xwoba": 0.298,
"barrel_percent": 6.6,
"hard_hit_percent": 38.2,
"whiff_percent": 23.2
},
"espn_rank": {
"rank": 15,
"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": "543243",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 8.0,
"R": 8.0,
"H": 29.0,
"BB": 7.0,
"SO": 30.0,
"HR": 3.0,
"BF": 125.0,
"Pitches": 458.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.6,
"H": 5.8,
"BB": 1.4,
"SO": 6.0,
"HR": 0.6,
"BF": 25.0,
"Pitches": 91.6
},
"rates": {
"ERA": 2.4,
"WHIP": 1.2,
"ER_per_IP": 0.26667,
"H_per_IP": 0.96667,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.0,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 20.0,
"R": 20.0,
"H": 60.0,
"BB": 16.0,
"SO": 53.0,
"HR": 6.0,
"BF": 249.0,
"Pitches": 882.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 6.0,
"BB": 1.6,
"SO": 5.3,
"HR": 0.6,
"BF": 24.9,
"Pitches": 88.2
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2667,
"ER_per_IP": 0.33333,
"H_per_IP": 1.0,
"BB_per_IP": 0.26667,
"SO_per_IP": 0.88333,
"HR_per_IP": 0.1
}
},
"season": {
"games": 25,
"totals": {
"IP": 143.2,
"ER": 45.0,
"R": 46.0,
"H": 132.0,
"BB": 37.0,
"SO": 128.0,
"HR": 15.0,
"BF": 586.0,
"Pitches": 2113.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.84,
"H": 5.28,
"BB": 1.48,
"SO": 5.12,
"HR": 0.6,
"BF": 23.44,
"Pitches": 84.52
},
"rates": {
"ERA": 2.819,
"WHIP": 1.1763,
"ER_per_IP": 0.31323,
"H_per_IP": 0.91879,
"BB_per_IP": 0.25754,
"SO_per_IP": 0.89095,
"HR_per_IP": 0.10441
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.976,
"predicted_H": 5.761,
"predicted_BB": 1.606,
"predicted_SO": 5.572,
"predicted_HR": 0.644,
"predicted_ERA": 2.991,
"predicted_WHIP": 1.2392
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.976,
"final": 2.827,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.761,
"final": 5.0206,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.606,
"final": 1.7716,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.572,
"final": 4.9111,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.644,
"final": 0.7937,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.991,
"final": 2.991,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2392,
"final": 1.2392,
"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": 60,
"BB": 16,
"SO": 53,
"HR": 6,
"ERA": 3.0,
"WHIP": 1.2666666666666666,
"K9": 7.95,
"HR9": 0.9,
"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-26T00:00:00"
},
"recent_form_boost": 0.8449050684751982,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 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": 2,
"worse_metrics": 0,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 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": 2,
"worse_metrics": 0,
"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_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 142,
"wins": 77,
"losses": 65,
"win_pct": 0.5423,
"runs_scored": 634.0,
"runs_allowed": 555.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5563,
"avg_runs_scored": 4.4648,
"avg_runs_allowed": 3.9085,
"offense_index": 0.997,
"defense_index": 1.1457,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 6.0,
"run_differential": -26.0
},
"available": true,
"quality_score": 0.0693
},
"opponent": {
"team": "BAL",
"games": 142,
"wins": 69,
"losses": 73,
"win_pct": 0.4859,
"runs_scored": 640.0,
"runs_allowed": 662.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1549,
"avg_runs_scored": 4.507,
"avg_runs_allowed": 4.662,
"offense_index": 1.0065,
"defense_index": 0.9606,
"current_streak": "L4",
"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.031
},
"edges": {
"quality_edge": 0.1003,
"offense_edge": -0.003,
"opponent_offense_edge": 0.0065,
"defense_strength": 0.1457,
"opponent_defense_weakness": 0.0394,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0081,
"run_prevention": 0.9815,
"strikeout": 1.0025
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 21.8,
"bb_percent": 6.3,
"woba": 0.301,
"xwoba": 0.298,
"sweet_spot_percent": 34.4,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 38.2,
"avg_best_speed": 78.882,
"avg_hyper_speed": 93.8852,
"whiff_percent": 23.2,
"swing_percent": 47.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1875,
"command_and_miss": 0.0321,
"regression_edge": 0.0857,
"xwoba_edge": 0.3714,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.2857,
"bb_edge": 0.725,
"pitch_design_score": -0.1351
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"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": 87.45986278978744,
"release_spin_rate": 2501.7368281686063,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.45986278978744,
"release_spin_rate": 2501.7368281686063,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4599,
"release_spin_rate": 2501.7368,
"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.1351,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.965,
"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.1111,
"sample_weight": 1.0,
"run_prevention_factor": 0.9906,
"strikeout_factor": 0.9874,
"walk_factor": 0.942,
"homer_factor": 0.9805,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543243",
"espn_id": 32082,
"player_name": "Sonny Gray",
"team": "BOS",
"role": "pitcher",
"espn_rank": 15,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 15,
"gp_value": 25.0,
"gp_rank": 308,
"gs_value": 25.0,
"gs_rank": 55,
"qs_value": 16.0,
"qs_rank": 11,
"era_value": 2.819,
"era_rank": 10.0,
"w_value": 16.0,
"w_rank": 1,
"l_value": 4.0,
"l_rank": 172,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 143.2,
"ip_rank": 48,
"h_value": 132.0,
"h_rank": 44,
"er_value": 45.0,
"er_rank": 120,
"hr_value": 15.0,
"hr_rank": 83,
"bb_value": 37.0,
"bb_rank": 101,
"k_value": 128.0,
"k_rank": 51,
"k_per_9_value": 8.018561,
"k_per_9_rank": 28,
"whip_value": 1.1763,
"whip_rank": 25.0,
"war_value": 3.64,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9906,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9906,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9805,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9874,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 96,
"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": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260905_BOS@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"
}
} |
| 20260905 | 20260905_BOS@BAL | home | Chris Bassitt | Chris Bassitt | True | 5.0 | 5.2 | 2 | 3 | 3 | 0 | 6/5 | 3/4 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.970711297071129,
"WHIP": 1.5815899581589956,
"IP": 79.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.952,
"recent_avg_IP": 5.267,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3861,
"sample_weight": 1.0,
"run_prevention_factor": 1.0328,
"strikeout_factor": 0.936,
"walk_factor": 0.976,
"homer_factor": 0.9839,
"regression_flag": "neutral",
"k_percent": 15.2,
"bb_percent": 8.0,
"woba": 0.36,
"xwoba": 0.345,
"barrel_percent": 5.2,
"hard_hit_percent": 36.1,
"whiff_percent": 20.8
},
"espn_rank": {
"rank": 303,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "605135",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 14.0,
"R": 14.0,
"H": 33.0,
"BB": 9.0,
"SO": 19.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 437.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 6.6,
"BB": 1.8,
"SO": 3.8,
"HR": 0.8,
"BF": 23.4,
"Pitches": 87.4
},
"rates": {
"ERA": 4.7848,
"WHIP": 1.5949,
"ER_per_IP": 0.53165,
"H_per_IP": 1.25316,
"BB_per_IP": 0.34177,
"SO_per_IP": 0.72152,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.2,
"ER": 27.0,
"R": 27.0,
"H": 59.0,
"BB": 15.0,
"SO": 38.0,
"HR": 6.0,
"BF": 227.0,
"Pitches": 827.0
},
"per_game": {
"IP": 5.1,
"ER": 2.7,
"R": 2.7,
"H": 5.9,
"BB": 1.5,
"SO": 3.8,
"HR": 0.6,
"BF": 22.7,
"Pitches": 82.7
},
"rates": {
"ERA": 4.7032,
"WHIP": 1.4323,
"ER_per_IP": 0.52258,
"H_per_IP": 1.14194,
"BB_per_IP": 0.29032,
"SO_per_IP": 0.73548,
"HR_per_IP": 0.11613
}
},
"season": {
"games": 16,
"totals": {
"IP": 79.2,
"ER": 44.0,
"R": 45.0,
"H": 97.0,
"BB": 29.0,
"SO": 55.0,
"HR": 9.0,
"BF": 362.0,
"Pitches": 1360.0
},
"per_game": {
"IP": 5.0,
"ER": 2.75,
"R": 2.8125,
"H": 6.0625,
"BB": 1.8125,
"SO": 3.4375,
"HR": 0.5625,
"BF": 22.625,
"Pitches": 85.0
},
"rates": {
"ERA": 4.9707,
"WHIP": 1.5816,
"ER_per_IP": 0.5523,
"H_per_IP": 1.21757,
"BB_per_IP": 0.36402,
"SO_per_IP": 0.69038,
"HR_per_IP": 0.11297
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.728,
"predicted_H": 5.988,
"predicted_BB": 1.761,
"predicted_SO": 4.016,
"predicted_HR": 0.702,
"predicted_ERA": 4.7181,
"predicted_WHIP": 1.4893
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.728,
"final": 2.8506,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.988,
"final": 5.0922,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.761,
"final": 2.3193,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.016,
"final": 4.4594,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.702,
"final": 0.8363,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7181,
"final": 4.7181,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4893,
"final": 1.4893,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 27,
"H": 59,
"BB": 15,
"SO": 38,
"HR": 6,
"ERA": 4.703225806451613,
"WHIP": 1.432258064516129,
"K9": 6.619354838709677,
"HR9": 1.0451612903225806,
"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-30T00:00:00"
},
"recent_form_boost": 1.0406577566472412,
"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": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605135",
"player_name": "Chris Bassitt",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.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": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"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": "BAL",
"games": 142,
"wins": 69,
"losses": 73,
"win_pct": 0.4859,
"runs_scored": 640.0,
"runs_allowed": 662.0,
"run_differential": -22.0,
"run_differential_per_game": -0.1549,
"avg_runs_scored": 4.507,
"avg_runs_allowed": 4.662,
"offense_index": 1.0065,
"defense_index": 0.9606,
"current_streak": "L4",
"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.031
},
"opponent": {
"team": "BOS",
"games": 142,
"wins": 77,
"losses": 65,
"win_pct": 0.5423,
"runs_scored": 634.0,
"runs_allowed": 555.0,
"run_differential": 79.0,
"run_differential_per_game": 0.5563,
"avg_runs_scored": 4.4648,
"avg_runs_allowed": 3.9085,
"offense_index": 0.997,
"defense_index": 1.1457,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 6.0,
"run_differential": -26.0
},
"available": true,
"quality_score": 0.0693
},
"edges": {
"quality_edge": -0.1003,
"offense_edge": 0.0065,
"opponent_offense_edge": -0.003,
"defense_strength": -0.0394,
"opponent_defense_weakness": -0.1457,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9949,
"run_prevention": 1.0085,
"strikeout": 0.9972
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605135",
"profile": {
"available": true,
"pitcher_id": "605135",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 309.0,
"k_percent": 15.2,
"bb_percent": 8.0,
"woba": 0.36,
"xwoba": 0.345,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 36.1,
"avg_best_speed": 76.3519,
"avg_hyper_speed": 93.5668,
"whiff_percent": 20.8,
"swing_percent": 46.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4504,
"command_and_miss": -0.5971,
"regression_edge": 0.4286,
"xwoba_edge": -0.9714,
"barrel_edge": 0.4444,
"hard_hit_edge": 0.2429,
"whiff_edge": -0.6286,
"bb_edge": 0.3,
"pitch_design_score": -0.2687
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605135",
"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": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 85.07424126102447,
"release_spin_rate": 2163.0290515294796,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0742,
"release_spin_rate": 2163.0291,
"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.2687,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9193,
"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.3861,
"sample_weight": 1.0,
"run_prevention_factor": 1.0328,
"strikeout_factor": 0.936,
"walk_factor": 0.976,
"homer_factor": 0.9839,
"woba_minus_xwoba": 0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "605135",
"espn_id": 33148,
"player_name": "Chris Bassitt",
"team": "BAL",
"role": "pitcher",
"espn_rank": 303,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 303,
"gp_value": 16.0,
"gp_rank": 438,
"gs_value": 14.0,
"gs_rank": 142,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 4.9707,
"era_rank": null,
"w_value": 6.0,
"w_rank": 101,
"l_value": 4.0,
"l_rank": 172,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 79.2,
"ip_rank": 156,
"h_value": 97.0,
"h_rank": 114,
"er_value": 44.0,
"er_rank": 126,
"hr_value": 9.0,
"hr_rank": 172,
"bb_value": 29.0,
"bb_rank": 164,
"k_value": 55.0,
"k_rank": 248,
"k_per_9_value": 6.2133894,
"k_per_9_rank": 42,
"whip_value": 1.5815,
"whip_rank": null,
"war_value": 0.31,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0328,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0328,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9839,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.936,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260905_BOS@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"
}
} |
| 20260905 | 20260905_CHC@MIA | away | Javier Assad | Javier Assad | True | 5.0 | 4.2 | -1 | 2 | 3 | 1 | 3/3 | 2/5 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.4560000000000004,
"WHIP": 1.104,
"IP": 83.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.2,
"recent_avg_IP": 4.933,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.403,
"sample_weight": 1.0,
"run_prevention_factor": 1.0343,
"strikeout_factor": 0.9103,
"walk_factor": 0.942,
"homer_factor": 1.0551,
"regression_flag": "neutral",
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.302,
"xwoba": 0.326,
"barrel_percent": 7.1,
"hard_hit_percent": 45.5,
"whiff_percent": 14.9
},
"espn_rank": {
"rank": 156,
"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": "665871",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.0,
"ER": 4.0,
"R": 4.0,
"H": 14.0,
"BB": 5.0,
"SO": 13.0,
"HR": 3.0,
"BF": 70.0,
"Pitches": 282.0
},
"per_game": {
"IP": 3.2,
"ER": 0.8,
"R": 0.8,
"H": 2.8,
"BB": 1.0,
"SO": 2.6,
"HR": 0.6,
"BF": 14.0,
"Pitches": 56.4
},
"rates": {
"ERA": 2.0,
"WHIP": 1.0556,
"ER_per_IP": 0.22222,
"H_per_IP": 0.77778,
"BB_per_IP": 0.27778,
"SO_per_IP": 0.72222,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 34.1,
"ER": 10.0,
"R": 11.0,
"H": 31.0,
"BB": 10.0,
"SO": 25.0,
"HR": 7.0,
"BF": 139.0,
"Pitches": 555.0
},
"per_game": {
"IP": 3.1,
"ER": 1.0,
"R": 1.1,
"H": 3.1,
"BB": 1.0,
"SO": 2.5,
"HR": 0.7,
"BF": 13.9,
"Pitches": 55.5
},
"rates": {
"ERA": 2.6214,
"WHIP": 1.1942,
"ER_per_IP": 0.29126,
"H_per_IP": 0.90291,
"BB_per_IP": 0.29126,
"SO_per_IP": 0.72816,
"HR_per_IP": 0.20388
}
},
"season": {
"games": 22,
"totals": {
"IP": 83.1,
"ER": 32.0,
"R": 33.0,
"H": 71.0,
"BB": 21.0,
"SO": 55.0,
"HR": 15.0,
"BF": 332.0,
"Pitches": 1305.0
},
"per_game": {
"IP": 3.2,
"ER": 1.4545,
"R": 1.5,
"H": 3.2273,
"BB": 0.9545,
"SO": 2.5,
"HR": 0.6818,
"BF": 15.0909,
"Pitches": 59.3182
},
"rates": {
"ERA": 3.456,
"WHIP": 1.104,
"ER_per_IP": 0.384,
"H_per_IP": 0.852,
"BB_per_IP": 0.252,
"SO_per_IP": 0.66,
"HR_per_IP": 0.18
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.219,
"predicted_H": 3.289,
"predicted_BB": 1.126,
"predicted_SO": 2.878,
"predicted_HR": 0.67,
"predicted_ERA": 2.8732,
"predicted_WHIP": 1.156
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.219,
"final": 1.5535,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.289,
"final": 3.1652,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.126,
"final": 1.5003,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.878,
"final": 3.3585,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.67,
"final": 0.3831,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8732,
"final": 2.8732,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.156,
"final": 1.156,
"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": 34.1,
"ER": 10,
"H": 31,
"BB": 10,
"SO": 25,
"HR": 7,
"ERA": 2.6213592233009706,
"WHIP": 1.1941747572815533,
"K9": 6.5533980582524265,
"HR9": 1.8349514563106795,
"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.8004956833619296,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "665871",
"player_name": "Javier Assad",
"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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": 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": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 142,
"wins": 80,
"losses": 62,
"win_pct": 0.5634,
"runs_scored": 759.0,
"runs_allowed": 621.0,
"run_differential": 138.0,
"run_differential_per_game": 0.9718,
"avg_runs_scored": 5.3451,
"avg_runs_allowed": 4.3732,
"offense_index": 1.1892,
"defense_index": 1.0278,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.2,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1378
},
"opponent": {
"team": "MIA",
"games": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 616.0,
"runs_allowed": 607.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0634,
"avg_runs_scored": 4.338,
"avg_runs_allowed": 4.2746,
"offense_index": 0.9651,
"defense_index": 1.0515,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.1,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0272
},
"edges": {
"quality_edge": 0.165,
"offense_edge": 0.1892,
"opponent_offense_edge": -0.0349,
"defense_strength": 0.0278,
"opponent_defense_weakness": -0.0515,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0088,
"run_prevention": 0.9834,
"strikeout": 1.0077
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "665871",
"profile": {
"available": true,
"pitcher_id": "665871",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 318.0,
"k_percent": 16.6,
"bb_percent": 6.3,
"woba": 0.302,
"xwoba": 0.326,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 45.5,
"avg_best_speed": 80.1286,
"avg_hyper_speed": 94.6061,
"whiff_percent": 14.9,
"swing_percent": 44.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2664,
"command_and_miss": -0.7171,
"regression_edge": -0.6857,
"xwoba_edge": -0.4286,
"barrel_edge": 0.0222,
"hard_hit_edge": -1.1,
"whiff_edge": -1.4714,
"bb_edge": 0.725,
"pitch_design_score": 0.0153
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "665871",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 54,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 54,
"pitch_usage": 0.0,
"release_speed": 90.1448544265419,
"release_spin_rate": 2090.5071422515693,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 54,
"pitch_usage": 0.0,
"release_speed": 90.1448544265419,
"release_spin_rate": 2090.5071422515693,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1449,
"release_spin_rate": 2090.5071,
"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.0153,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.109,
"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.403,
"sample_weight": 1.0,
"run_prevention_factor": 1.0343,
"strikeout_factor": 0.9103,
"walk_factor": 0.942,
"homer_factor": 1.0551,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "665871",
"espn_id": 5002950,
"player_name": "Javier Assad",
"team": "CHC",
"role": "pitcher",
"espn_rank": 156,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 156,
"gp_value": 22.0,
"gp_rank": 353,
"gs_value": 10.0,
"gs_rank": 168,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 3.456,
"era_rank": null,
"w_value": 6.0,
"w_rank": 101,
"l_value": 1.0,
"l_rank": 422,
"sv_value": 2.0,
"sv_rank": 88,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 83.1,
"ip_rank": 149,
"h_value": 71.0,
"h_rank": 155,
"er_value": 32.0,
"er_rank": 172,
"hr_value": 15.0,
"hr_rank": 83,
"bb_value": 21.0,
"bb_rank": 266,
"k_value": 55.0,
"k_rank": 248,
"k_per_9_value": 5.94,
"k_per_9_rank": 44,
"whip_value": 1.104,
"whip_rank": null,
"war_value": 1.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0343,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0343,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0551,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9103,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260905_CHC@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"
}
} |
| 20260905 | 20260905_CHC@MIA | home | Ryan Gusto | Ryan Gusto | True | 4.1 | 4.2 | 1 | 6 | 5 | -1 | 5/10 | 1/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.8571428571428568,
"WHIP": 1.3300492610837438,
"IP": 67.2,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.167,
"recent_avg_IP": 4.533,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2613,
"sample_weight": 0.948,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9653,
"walk_factor": 0.9526,
"homer_factor": 1.0513,
"regression_flag": "neutral",
"k_percent": 19.1,
"bb_percent": 6.7,
"woba": 0.318,
"xwoba": 0.325,
"barrel_percent": 7.8,
"hard_hit_percent": 43.3,
"whiff_percent": 21.7
},
"espn_rank": {
"rank": 212,
"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": "687473",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 5.0,
"R": 7.0,
"H": 22.0,
"BB": 7.0,
"SO": 18.0,
"HR": 3.0,
"BF": 100.0,
"Pitches": 350.0
},
"per_game": {
"IP": 4.2,
"ER": 1.0,
"R": 1.4,
"H": 4.4,
"BB": 1.4,
"SO": 3.6,
"HR": 0.6,
"BF": 20.0,
"Pitches": 70.0
},
"rates": {
"ERA": 1.9853,
"WHIP": 1.2794,
"ER_per_IP": 0.22059,
"H_per_IP": 0.97059,
"BB_per_IP": 0.30882,
"SO_per_IP": 0.79412,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 41.1,
"ER": 14.0,
"R": 17.0,
"H": 41.0,
"BB": 10.0,
"SO": 34.0,
"HR": 5.0,
"BF": 177.0,
"Pitches": 631.0
},
"per_game": {
"IP": 4.0,
"ER": 1.4,
"R": 1.7,
"H": 4.1,
"BB": 1.0,
"SO": 3.4,
"HR": 0.5,
"BF": 17.7,
"Pitches": 63.1
},
"rates": {
"ERA": 3.0484,
"WHIP": 1.2339,
"ER_per_IP": 0.33871,
"H_per_IP": 0.99194,
"BB_per_IP": 0.24194,
"SO_per_IP": 0.82258,
"HR_per_IP": 0.12097
}
},
"season": {
"games": 19,
"totals": {
"IP": 67.2,
"ER": 29.0,
"R": 32.0,
"H": 70.0,
"BB": 20.0,
"SO": 57.0,
"HR": 8.0,
"BF": 298.0,
"Pitches": 1078.0
},
"per_game": {
"IP": 3.2,
"ER": 1.5263,
"R": 1.6842,
"H": 3.6842,
"BB": 1.0526,
"SO": 3.0,
"HR": 0.4211,
"BF": 15.6842,
"Pitches": 56.7368
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.33,
"ER_per_IP": 0.42857,
"H_per_IP": 1.03448,
"BB_per_IP": 0.29557,
"SO_per_IP": 0.84236,
"HR_per_IP": 0.11823
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.463,
"predicted_H": 4.197,
"predicted_BB": 1.281,
"predicted_SO": 3.571,
"predicted_HR": 0.552,
"predicted_ERA": 3.0953,
"predicted_WHIP": 1.2878
}
},
"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": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 1.463,
"final": 3.4502,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.197,
"final": 4.5487,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.281,
"final": 1.1579,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.571,
"final": 4.6349,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.552,
"final": 1.1862,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0953,
"final": 3.0953,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2878,
"final": 1.2878,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 41.1,
"ER": 14,
"H": 41,
"BB": 10,
"SO": 34,
"HR": 5,
"ERA": 3.0483870967741935,
"WHIP": 1.2338709677419355,
"K9": 7.403225806451612,
"HR9": 1.0887096774193548,
"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-31T00:00:00"
},
"recent_form_boost": 0.8495287243891767,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "687473",
"player_name": "Ryan Gusto",
"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": 6.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 616.0,
"runs_allowed": 607.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0634,
"avg_runs_scored": 4.338,
"avg_runs_allowed": 4.2746,
"offense_index": 0.9651,
"defense_index": 1.0515,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 5.1,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0272
},
"opponent": {
"team": "CHC",
"games": 142,
"wins": 80,
"losses": 62,
"win_pct": 0.5634,
"runs_scored": 759.0,
"runs_allowed": 621.0,
"run_differential": 138.0,
"run_differential_per_game": 0.9718,
"avg_runs_scored": 5.3451,
"avg_runs_allowed": 4.3732,
"offense_index": 1.1892,
"defense_index": 1.0278,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.8,
"avg_runs_allowed": 5.2,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1378
},
"edges": {
"quality_edge": -0.165,
"offense_edge": -0.0349,
"opponent_offense_edge": 0.1892,
"defense_strength": 0.0515,
"opponent_defense_weakness": -0.0278,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9874,
"run_prevention": 1.0334,
"strikeout": 0.9799
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687473",
"profile": {
"available": true,
"pitcher_id": "687473",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 237.0,
"k_percent": 19.1,
"bb_percent": 6.7,
"woba": 0.318,
"xwoba": 0.325,
"sweet_spot_percent": 36.4,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 43.3,
"avg_best_speed": 79.1905,
"avg_hyper_speed": 94.0874,
"whiff_percent": 21.7,
"swing_percent": 50.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3401,
"command_and_miss": -0.2364,
"regression_edge": -0.2,
"xwoba_edge": -0.4,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.7857,
"whiff_edge": -0.5,
"bb_edge": 0.625,
"pitch_design_score": -0.0462
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 71,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0468,
"release_spin_rate": 2247.1114,
"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.0462,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3303,
"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.2613,
"sample_weight": 0.948,
"run_prevention_factor": 1.0222,
"strikeout_factor": 0.9653,
"walk_factor": 0.9526,
"homer_factor": 1.0513,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687473",
"espn_id": 5131986,
"player_name": "Ryan Gusto",
"team": "MIA",
"role": "pitcher",
"espn_rank": 212,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 212,
"gp_value": 19.0,
"gp_rank": 396,
"gs_value": 14.0,
"gs_rank": 142,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 3.8571,
"era_rank": null,
"w_value": 1.0,
"w_rank": 404,
"l_value": 3.0,
"l_rank": 230,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 1.0,
"hld_rank": 266,
"ip_value": 67.2,
"ip_rank": 184,
"h_value": 70.0,
"h_rank": 159,
"er_value": 29.0,
"er_rank": 187,
"hr_value": 8.0,
"hr_rank": 199,
"bb_value": 20.0,
"bb_rank": 289,
"k_value": 57.0,
"k_rank": 233,
"k_per_9_value": 7.5812807,
"k_per_9_rank": 34,
"whip_value": 1.33,
"whip_rank": null,
"war_value": 0.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.021,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 1.021,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9551,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0486,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9671,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 20,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260905_CHC@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"
}
} |
| 20260905 | 20260905_DET@CLE | away | Framber Valdez | Framber Valdez | True | 5.1 | 7.0 | 5 | 2 | 0 | -2 | 4/3 | 2/1 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.360619469026549,
"WHIP": 1.4004424778761062,
"IP": 150.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.58,
"recent_avg_IP": 6.067,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3037,
"sample_weight": 1.0,
"run_prevention_factor": 1.0258,
"strikeout_factor": 0.9446,
"walk_factor": 0.988,
"homer_factor": 1.0276,
"regression_flag": "neutral",
"k_percent": 17.5,
"bb_percent": 8.6,
"woba": 0.324,
"xwoba": 0.328,
"barrel_percent": 6.1,
"hard_hit_percent": 43.5,
"whiff_percent": 20.0
},
"espn_rank": {
"rank": 187,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "664285",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 14.0,
"R": 16.0,
"H": 30.0,
"BB": 14.0,
"SO": 18.0,
"HR": 3.0,
"BF": 131.0,
"Pitches": 477.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 3.2,
"H": 6.0,
"BB": 2.8,
"SO": 3.6,
"HR": 0.6,
"BF": 26.2,
"Pitches": 95.4
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.4505,
"ER_per_IP": 0.46154,
"H_per_IP": 0.98901,
"BB_per_IP": 0.46154,
"SO_per_IP": 0.59341,
"HR_per_IP": 0.0989
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 30.0,
"R": 33.0,
"H": 60.0,
"BB": 23.0,
"SO": 39.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.3,
"H": 6.0,
"BB": 2.3,
"SO": 3.9,
"HR": 0.5,
"BF": 24.7,
"Pitches": 88.6
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.5091,
"ER_per_IP": 0.54545,
"H_per_IP": 1.09091,
"BB_per_IP": 0.41818,
"SO_per_IP": 0.70909,
"HR_per_IP": 0.09091
}
},
"season": {
"games": 27,
"totals": {
"IP": 150.2,
"ER": 73.0,
"R": 81.0,
"H": 154.0,
"BB": 57.0,
"SO": 116.0,
"HR": 15.0,
"BF": 664.0,
"Pitches": 2407.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7037,
"R": 3.0,
"H": 5.7037,
"BB": 2.1111,
"SO": 4.2963,
"HR": 0.5556,
"BF": 24.5926,
"Pitches": 89.1481
},
"rates": {
"ERA": 4.3606,
"WHIP": 1.4004,
"ER_per_IP": 0.48451,
"H_per_IP": 1.02212,
"BB_per_IP": 0.37832,
"SO_per_IP": 0.76991,
"HR_per_IP": 0.09956
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.849,
"predicted_H": 5.872,
"predicted_BB": 2.417,
"predicted_SO": 4.087,
"predicted_HR": 0.597,
"predicted_ERA": 4.4622,
"predicted_WHIP": 1.4424
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.849,
"final": 2.4958,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.872,
"final": 5.0933,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.417,
"final": 2.2435,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.087,
"final": 4.0508,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.597,
"final": 0.3487,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4622,
"final": 4.4622,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4424,
"final": 1.4424,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.0,
"ER": 30,
"H": 60,
"BB": 23,
"SO": 39,
"HR": 5,
"ERA": 4.909090909090909,
"WHIP": 1.509090909090909,
"K9": 6.381818181818182,
"HR9": 0.8181818181818182,
"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-30T00:00:00"
},
"recent_form_boost": 1.0657384018085316,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.1,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "664285",
"player_name": "Framber Valdez",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.1,
"after": 5.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.0,
"after": 5.1,
"delta": -0.9,
"percent_delta": -0.15,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 141,
"wins": 64,
"losses": 77,
"win_pct": 0.4539,
"runs_scored": 619.0,
"runs_allowed": 574.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3191,
"avg_runs_scored": 4.3901,
"avg_runs_allowed": 4.0709,
"offense_index": 0.9803,
"defense_index": 1.1,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.07
},
"opponent": {
"team": "CLE",
"games": 142,
"wins": 72,
"losses": 70,
"win_pct": 0.507,
"runs_scored": 577.0,
"runs_allowed": 586.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0634,
"avg_runs_scored": 4.0634,
"avg_runs_allowed": 4.1268,
"offense_index": 0.9074,
"defense_index": 1.0851,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0332
},
"edges": {
"quality_edge": -0.1032,
"offense_edge": -0.0197,
"opponent_offense_edge": -0.0926,
"defense_strength": 0.1,
"opponent_defense_weakness": -0.0851,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0026,
"run_prevention": 0.9803,
"strikeout": 1.0043
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "664285",
"profile": {
"available": true,
"pitcher_id": "664285",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 611.0,
"k_percent": 17.5,
"bb_percent": 8.6,
"woba": 0.324,
"xwoba": 0.328,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 43.5,
"avg_best_speed": 79.8697,
"avg_hyper_speed": 94.8589,
"whiff_percent": 20.0,
"swing_percent": 46.8
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2671,
"command_and_miss": -0.5193,
"regression_edge": -0.1143,
"xwoba_edge": -0.4857,
"barrel_edge": 0.2444,
"hard_hit_edge": -0.8143,
"whiff_edge": -0.7429,
"bb_edge": 0.15,
"pitch_design_score": -0.0961
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "664285",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 88.15669735231863,
"release_spin_rate": 2286.472783096767,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1567,
"release_spin_rate": 2286.4728,
"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.0961,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6863,
"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.3037,
"sample_weight": 1.0,
"run_prevention_factor": 1.0258,
"strikeout_factor": 0.9446,
"walk_factor": 0.988,
"homer_factor": 1.0276,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "664285",
"espn_id": 36581,
"player_name": "Framber Valdez",
"team": "DET",
"role": "pitcher",
"espn_rank": 187,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 187,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 27.0,
"gs_rank": 27,
"qs_value": 14.0,
"qs_rank": 19,
"era_value": 4.3606,
"era_rank": 43.0,
"w_value": 8.0,
"w_rank": 61,
"l_value": 10.0,
"l_rank": 15,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 150.2,
"ip_rank": 31,
"h_value": 154.0,
"h_rank": 10,
"er_value": 73.0,
"er_rank": 19,
"hr_value": 15.0,
"hr_rank": 83,
"bb_value": 57.0,
"bb_rank": 16,
"k_value": 116.0,
"k_rank": 72,
"k_per_9_value": 6.929204,
"k_per_9_rank": 62,
"whip_value": 1.4004,
"whip_rank": 45.0,
"war_value": 0.94,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0258,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0258,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 0.988,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0276,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9446,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260905_DET@CLE.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"
}
} |
| 20260905 | 20260905_DET@CLE | home | Parker Messick | Parker Messick | True | 6.0 | 6.0 | 0 | 3 | 3 | 0 | 5/7 | 2/2 | 6/12 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.459627329192547,
"WHIP": 1.0186335403726707,
"IP": 161.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.963,
"recent_avg_IP": 6.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.6287,
"sample_weight": 1.0,
"run_prevention_factor": 0.9466,
"strikeout_factor": 1.0217,
"walk_factor": 0.952,
"homer_factor": 0.8838,
"regression_flag": "neutral",
"k_percent": 25.3,
"bb_percent": 6.8,
"woba": 0.264,
"xwoba": 0.266,
"barrel_percent": 4.6,
"hard_hit_percent": 32.3,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 5,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800048",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.1,
"ER": 7.0,
"R": 7.0,
"H": 21.0,
"BB": 6.0,
"SO": 33.0,
"HR": 3.0,
"BF": 121.0,
"Pitches": 496.0
},
"per_game": {
"IP": 6.1,
"ER": 1.4,
"R": 1.4,
"H": 4.2,
"BB": 1.2,
"SO": 6.6,
"HR": 0.6,
"BF": 24.2,
"Pitches": 99.2
},
"rates": {
"ERA": 2.0106,
"WHIP": 0.8617,
"ER_per_IP": 0.2234,
"H_per_IP": 0.67021,
"BB_per_IP": 0.19149,
"SO_per_IP": 1.05319,
"HR_per_IP": 0.09574
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 12.0,
"R": 14.0,
"H": 43.0,
"BB": 14.0,
"SO": 55.0,
"HR": 5.0,
"BF": 237.0,
"Pitches": 960.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2,
"R": 1.4,
"H": 4.3,
"BB": 1.4,
"SO": 5.5,
"HR": 0.5,
"BF": 23.7,
"Pitches": 96.0
},
"rates": {
"ERA": 1.8,
"WHIP": 0.95,
"ER_per_IP": 0.2,
"H_per_IP": 0.71667,
"BB_per_IP": 0.23333,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 27,
"totals": {
"IP": 161.0,
"ER": 44.0,
"R": 48.0,
"H": 121.0,
"BB": 43.0,
"SO": 161.0,
"HR": 14.0,
"BF": 637.0,
"Pitches": 2504.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6296,
"R": 1.7778,
"H": 4.4815,
"BB": 1.5926,
"SO": 5.963,
"HR": 0.5185,
"BF": 23.5926,
"Pitches": 92.7407
},
"rates": {
"ERA": 2.4596,
"WHIP": 1.0186,
"ER_per_IP": 0.27329,
"H_per_IP": 0.75155,
"BB_per_IP": 0.26708,
"SO_per_IP": 1.0,
"HR_per_IP": 0.08696
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.64,
"predicted_H": 4.562,
"predicted_BB": 1.499,
"predicted_SO": 6.04,
"predicted_HR": 0.603,
"predicted_ERA": 2.4094,
"predicted_WHIP": 0.9893
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.64,
"final": 2.2058,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.562,
"final": 4.7442,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.499,
"final": 1.7074,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.04,
"final": 5.1914,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.603,
"final": 0.3522,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4094,
"final": 2.4094,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9893,
"final": 0.9893,
"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": 12,
"H": 43,
"BB": 14,
"SO": 55,
"HR": 5,
"ERA": 1.8,
"WHIP": 0.95,
"K9": 8.25,
"HR9": 0.75,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.7019884018085315,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.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": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.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": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 142,
"wins": 72,
"losses": 70,
"win_pct": 0.507,
"runs_scored": 577.0,
"runs_allowed": 586.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0634,
"avg_runs_scored": 4.0634,
"avg_runs_allowed": 4.1268,
"offense_index": 0.9074,
"defense_index": 1.0851,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0332
},
"opponent": {
"team": "DET",
"games": 141,
"wins": 64,
"losses": 77,
"win_pct": 0.4539,
"runs_scored": 619.0,
"runs_allowed": 574.0,
"run_differential": 45.0,
"run_differential_per_game": 0.3191,
"avg_runs_scored": 4.3901,
"avg_runs_allowed": 4.0709,
"offense_index": 0.9803,
"defense_index": 1.1,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 5.6,
"run_differential": -25.0
},
"available": true,
"quality_score": -0.07
},
"edges": {
"quality_edge": 0.1032,
"offense_edge": -0.0926,
"opponent_offense_edge": -0.0197,
"defense_strength": 0.0851,
"opponent_defense_weakness": -0.1,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0075,
"run_prevention": 0.9832,
"strikeout": 1.0047
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 586.0,
"k_percent": 25.3,
"bb_percent": 6.8,
"woba": 0.264,
"xwoba": 0.266,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 4.6,
"hard_hit_percent": 32.3,
"avg_best_speed": 76.1584,
"avg_hyper_speed": 93.2483,
"whiff_percent": 25.7,
"swing_percent": 48.4
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9667,
"command_and_miss": 0.3571,
"regression_edge": -0.0571,
"xwoba_edge": 1.2857,
"barrel_edge": 0.5778,
"hard_hit_edge": 0.7857,
"whiff_edge": 0.0714,
"bb_edge": 0.6,
"pitch_design_score": 0.0024
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"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": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.91564892850265,
"release_spin_rate": 2099.092261917475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9156,
"release_spin_rate": 2099.0923,
"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.0024,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0173,
"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.6287,
"sample_weight": 1.0,
"run_prevention_factor": 0.9466,
"strikeout_factor": 1.0217,
"walk_factor": 0.952,
"homer_factor": 0.8838,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800048",
"espn_id": 4619898,
"player_name": "Parker Messick",
"team": "CLE",
"role": "pitcher",
"espn_rank": 5,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 5,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 27.0,
"gs_rank": 27,
"qs_value": 12.0,
"qs_rank": 32,
"era_value": 2.4596,
"era_rank": 5.0,
"w_value": 11.0,
"w_rank": 20,
"l_value": 8.0,
"l_rank": 50,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 161.0,
"ip_rank": 16,
"h_value": 121.0,
"h_rank": 69,
"er_value": 44.0,
"er_rank": 126,
"hr_value": 14.0,
"hr_rank": 102,
"bb_value": 43.0,
"bb_rank": 66,
"k_value": 161.0,
"k_rank": 20,
"k_per_9_value": 9.0,
"k_per_9_rank": 33,
"whip_value": 1.0186,
"whip_rank": 6.0,
"war_value": 5.32,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9466,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9466,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.952,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.8838,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0217,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 111,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260905_DET@CLE.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"
}
} |
| 20260905 | 20260905_LAA@PIT | away | Yusei Kikuchi | Yusei Kikuchi | True | 4.2 | 6.0 | 4 | 6 | 0 | -6 | 6/5 | 2/3 | 5/6 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 5.651162790697675,
"WHIP": 1.4883720930232558,
"IP": 43.0,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 4.778,
"recent_avg_IP": 5.0,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2775,
"sample_weight": 0.568,
"run_prevention_factor": 1.0236,
"strikeout_factor": 1.0029,
"walk_factor": 0.9898,
"homer_factor": 1.0727,
"regression_flag": "neutral",
"k_percent": 22.4,
"bb_percent": 8.3,
"woba": 0.36,
"xwoba": 0.351,
"barrel_percent": 9.9,
"hard_hit_percent": 45.8,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 547,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "579328",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 12.0,
"R": 12.0,
"H": 24.0,
"BB": 6.0,
"SO": 24.0,
"HR": 4.0,
"BF": 103.0,
"Pitches": 392.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.8,
"BB": 1.2,
"SO": 4.8,
"HR": 0.8,
"BF": 20.6,
"Pitches": 78.4
},
"rates": {
"ERA": 4.32,
"WHIP": 1.2,
"ER_per_IP": 0.48,
"H_per_IP": 0.96,
"BB_per_IP": 0.24,
"SO_per_IP": 0.96,
"HR_per_IP": 0.16
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 43.0,
"ER": 27.0,
"R": 27.0,
"H": 48.0,
"BB": 16.0,
"SO": 43.0,
"HR": 7.0,
"BF": 192.0,
"Pitches": 748.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 5.3333,
"BB": 1.7778,
"SO": 4.7778,
"HR": 0.7778,
"BF": 21.3333,
"Pitches": 83.1111
},
"rates": {
"ERA": 5.6512,
"WHIP": 1.4884,
"ER_per_IP": 0.62791,
"H_per_IP": 1.11628,
"BB_per_IP": 0.37209,
"SO_per_IP": 1.0,
"HR_per_IP": 0.16279
}
},
"season": {
"games": 9,
"totals": {
"IP": 43.0,
"ER": 27.0,
"R": 27.0,
"H": 48.0,
"BB": 16.0,
"SO": 43.0,
"HR": 7.0,
"BF": 192.0,
"Pitches": 748.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 5.3333,
"BB": 1.7778,
"SO": 4.7778,
"HR": 0.7778,
"BF": 21.3333,
"Pitches": 83.1111
},
"rates": {
"ERA": 5.6512,
"WHIP": 1.4884,
"ER_per_IP": 0.62791,
"H_per_IP": 1.11628,
"BB_per_IP": 0.37209,
"SO_per_IP": 1.0,
"HR_per_IP": 0.16279
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.571,
"predicted_H": 4.929,
"predicted_BB": 1.571,
"predicted_SO": 4.73,
"predicted_HR": 0.765,
"predicted_ERA": 4.7043,
"predicted_WHIP": 1.3218
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.571,
"final": 4.2885,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.929,
"final": 4.9646,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.571,
"final": 1.7859,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.73,
"final": 3.3626,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.765,
"final": 1.8845,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7043,
"final": 4.7043,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3218,
"final": 1.3218,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.0,
"ER": 27,
"H": 48,
"BB": 16,
"SO": 43,
"HR": 7,
"ERA": 5.651162790697675,
"WHIP": 1.4883720930232558,
"K9": 9.0,
"HR9": 1.4651162790697674,
"games_pitched": 9,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.1487035180876015,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 3.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 6,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 3
}
}
],
"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": 2.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 6.0,
"predicted_H": 5.0,
"predicted_HR": 3.0,
"predicted_IP": 4.2,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 6.0,
"predicted_H": 6.0,
"predicted_HR": 3.0,
"predicted_IP": 4.2,
"predicted_R": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 141,
"wins": 53,
"losses": 88,
"win_pct": 0.3759,
"runs_scored": 571.0,
"runs_allowed": 652.0,
"run_differential": -81.0,
"run_differential_per_game": -0.5745,
"avg_runs_scored": 4.0496,
"avg_runs_allowed": 4.6241,
"offense_index": 0.9043,
"defense_index": 0.9684,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.5,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.316
},
"opponent": {
"team": "PIT",
"games": 142,
"wins": 70,
"losses": 72,
"win_pct": 0.493,
"runs_scored": 692.0,
"runs_allowed": 662.0,
"run_differential": 30.0,
"run_differential_per_game": 0.2113,
"avg_runs_scored": 4.8732,
"avg_runs_allowed": 4.662,
"offense_index": 1.0882,
"defense_index": 0.9606,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.09
},
"edges": {
"quality_edge": -0.406,
"offense_edge": -0.0957,
"opponent_offense_edge": 0.0882,
"defense_strength": -0.0316,
"opponent_defense_weakness": 0.0394,
"recent_win_pct_edge": -0.6
},
"player_factors": {
"ip": 0.9793,
"run_prevention": 1.0376,
"strikeout": 0.9808
},
"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": 142.0,
"k_percent": 22.4,
"bb_percent": 8.3,
"woba": 0.36,
"xwoba": 0.351,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 45.8,
"avg_best_speed": 80.3913,
"avg_hyper_speed": 95.5372,
"whiff_percent": 25.7,
"swing_percent": 49.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9586,
"command_and_miss": 0.0957,
"regression_edge": 0.2571,
"xwoba_edge": -1.1429,
"barrel_edge": -0.6,
"hard_hit_edge": -1.1429,
"whiff_edge": 0.0714,
"bb_edge": 0.225,
"pitch_design_score": -0.0298
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "579328",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 73,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.33948369974534,
"release_spin_rate": 2182.3887540174815,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 73,
"pitch_usage": 0.0,
"release_speed": 89.33948369974534,
"release_spin_rate": 2182.3887540174815,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3395,
"release_spin_rate": 2182.3888,
"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.0298,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2132,
"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.2775,
"sample_weight": 0.568,
"run_prevention_factor": 1.0236,
"strikeout_factor": 1.0029,
"walk_factor": 0.9898,
"homer_factor": 1.0727,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "579328",
"espn_id": 41415,
"player_name": "Yusei Kikuchi",
"team": "LAA",
"role": "pitcher",
"espn_rank": 547,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 547,
"gp_value": 9.0,
"gp_rank": 535,
"gs_value": 9.0,
"gs_rank": 176,
"qs_value": 2.0,
"qs_rank": 155,
"era_value": 5.6511,
"era_rank": null,
"w_value": 0.0,
"w_rank": 526,
"l_value": 5.0,
"l_rank": 131,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 43.0,
"ip_rank": 340,
"h_value": 48.0,
"h_rank": 248,
"er_value": 27.0,
"er_rank": 207,
"hr_value": 7.0,
"hr_rank": 221,
"bb_value": 16.0,
"bb_rank": 353,
"k_value": 43.0,
"k_rank": 326,
"k_per_9_value": 9.0,
"k_per_9_rank": 25,
"whip_value": 1.4883,
"whip_rank": null,
"war_value": -0.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0134,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0134,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0413,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0016,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was -6; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 6 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/20260905_LAA@PIT.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"
}
} |
| 20260905 | 20260905_LAA@PIT | home | Braxton Ashcraft | Braxton Ashcraft | True | 6.1 | 5.0 | -4 | 3 | 3 | 0 | 5/7 | 0/0 | 7/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6486486486486482,
"WHIP": 1.0852390852390852,
"IP": 160.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.938,
"recent_avg_IP": 6.6,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3314,
"sample_weight": 1.0,
"run_prevention_factor": 0.9718,
"strikeout_factor": 1.0217,
"walk_factor": 0.924,
"homer_factor": 0.9839,
"regression_flag": "neutral",
"k_percent": 25.4,
"bb_percent": 5.4,
"woba": 0.289,
"xwoba": 0.287,
"barrel_percent": 6.2,
"hard_hit_percent": 41.7,
"whiff_percent": 25.6
},
"espn_rank": {
"rank": 16,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677952",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 9.0,
"R": 9.0,
"H": 22.0,
"BB": 4.0,
"SO": 24.0,
"HR": 4.0,
"BF": 119.0,
"Pitches": 409.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 0.8,
"SO": 4.8,
"HR": 0.8,
"BF": 23.8,
"Pitches": 81.8
},
"rates": {
"ERA": 2.4545,
"WHIP": 0.7879,
"ER_per_IP": 0.27273,
"H_per_IP": 0.66667,
"BB_per_IP": 0.12121,
"SO_per_IP": 0.72727,
"HR_per_IP": 0.12121
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 27.0,
"R": 28.0,
"H": 51.0,
"BB": 12.0,
"SO": 49.0,
"HR": 10.0,
"BF": 229.0,
"Pitches": 837.0
},
"per_game": {
"IP": 5.2,
"ER": 2.7,
"R": 2.8,
"H": 5.1,
"BB": 1.2,
"SO": 4.9,
"HR": 1.0,
"BF": 22.9,
"Pitches": 83.7
},
"rates": {
"ERA": 4.2139,
"WHIP": 1.0925,
"ER_per_IP": 0.46821,
"H_per_IP": 0.88439,
"BB_per_IP": 0.20809,
"SO_per_IP": 0.84971,
"HR_per_IP": 0.17341
}
},
"season": {
"games": 27,
"totals": {
"IP": 160.1,
"ER": 65.0,
"R": 70.0,
"H": 139.0,
"BB": 35.0,
"SO": 164.0,
"HR": 21.0,
"BF": 645.0,
"Pitches": 2346.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4074,
"R": 2.5926,
"H": 5.1481,
"BB": 1.2963,
"SO": 6.0741,
"HR": 0.7778,
"BF": 23.8889,
"Pitches": 86.8889
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.0852,
"ER_per_IP": 0.40541,
"H_per_IP": 0.86694,
"BB_per_IP": 0.2183,
"SO_per_IP": 1.02287,
"HR_per_IP": 0.13098
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.408,
"predicted_H": 5.041,
"predicted_BB": 1.256,
"predicted_SO": 5.252,
"predicted_HR": 0.882,
"predicted_ERA": 3.4915,
"predicted_WHIP": 1.0146
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.408,
"final": 3.0703,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.041,
"final": 5.4399,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.256,
"final": 0.7335,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 5.252,
"final": 5.9792,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.882,
"final": 0.5151,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4915,
"final": 3.4915,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0146,
"final": 1.0146,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.2,
"ER": 27,
"H": 51,
"BB": 12,
"SO": 49,
"HR": 10,
"ERA": 4.213872832369942,
"WHIP": 1.092485549132948,
"K9": 7.647398843930636,
"HR9": 1.560693641618497,
"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-30T00:00:00"
},
"recent_form_boost": 0.9771112341784738,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677952",
"player_name": "Braxton Ashcraft",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.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": 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": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"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": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "better",
"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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 142,
"wins": 70,
"losses": 72,
"win_pct": 0.493,
"runs_scored": 692.0,
"runs_allowed": 662.0,
"run_differential": 30.0,
"run_differential_per_game": 0.2113,
"avg_runs_scored": 4.8732,
"avg_runs_allowed": 4.662,
"offense_index": 1.0882,
"defense_index": 0.9606,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.09
},
"opponent": {
"team": "LAA",
"games": 141,
"wins": 53,
"losses": 88,
"win_pct": 0.3759,
"runs_scored": 571.0,
"runs_allowed": 652.0,
"run_differential": -81.0,
"run_differential_per_game": -0.5745,
"avg_runs_scored": 4.0496,
"avg_runs_allowed": 4.6241,
"offense_index": 0.9043,
"defense_index": 0.9684,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.5,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.316
},
"edges": {
"quality_edge": 0.406,
"offense_edge": 0.0882,
"opponent_offense_edge": -0.0957,
"defense_strength": -0.0394,
"opponent_defense_weakness": 0.0316,
"recent_win_pct_edge": 0.6
},
"player_factors": {
"ip": 1.0189,
"run_prevention": 0.9683,
"strikeout": 1.0198
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677952",
"profile": {
"available": true,
"pitcher_id": "677952",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 599.0,
"k_percent": 25.4,
"bb_percent": 5.4,
"woba": 0.289,
"xwoba": 0.287,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 41.7,
"avg_best_speed": 79.1995,
"avg_hyper_speed": 94.4487,
"whiff_percent": 25.6,
"swing_percent": 52.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3616,
"command_and_miss": 0.4286,
"regression_edge": 0.0571,
"xwoba_edge": 0.6857,
"barrel_edge": 0.2222,
"hard_hit_edge": -0.5571,
"whiff_edge": 0.0571,
"bb_edge": 0.95,
"pitch_design_score": 0.1463
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677952",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 92.48482503258485,
"release_spin_rate": 2475.2218591031974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 92.48482503258485,
"release_spin_rate": 2475.2218591031974,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4848,
"release_spin_rate": 2475.2219,
"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.1463,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.045,
"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.3314,
"sample_weight": 1.0,
"run_prevention_factor": 0.9718,
"strikeout_factor": 1.0217,
"walk_factor": 0.924,
"homer_factor": 0.9839,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "677952",
"espn_id": 41282,
"player_name": "Braxton Ashcraft",
"team": "PIT",
"role": "pitcher",
"espn_rank": 16,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 16,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 27.0,
"gs_rank": 27,
"qs_value": 13.0,
"qs_rank": 27,
"era_value": 3.5925,
"era_rank": 25.0,
"w_value": 14.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 131,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 160.1,
"ip_rank": 17,
"h_value": 138.0,
"h_rank": 34,
"er_value": 64.0,
"er_rank": 49,
"hr_value": 21.0,
"hr_rank": 25,
"bb_value": 35.0,
"bb_rank": 116,
"k_value": 164.0,
"k_rank": 19,
"k_per_9_value": 9.205821,
"k_per_9_rank": 30,
"whip_value": 1.079,
"whip_rank": 11.0,
"war_value": 3.63,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9718,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9718,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9839,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0217,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 107,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260905_LAA@PIT.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"
}
} |
| 20260905 | 20260905_MIL@CIN | away | Dustin May | Dustin May | True | 5.0 | 3.2 | -4 | 3 | 2 | -1 | 4/5 | 1/0 | 7/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.686528497409327,
"WHIP": 1.3212435233160622,
"IP": 128.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.949,
"recent_avg_IP": 3.933,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1215,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 0.9851,
"walk_factor": 0.98,
"homer_factor": 1.0402,
"regression_flag": "neutral",
"k_percent": 22.3,
"bb_percent": 8.2,
"woba": 0.316,
"xwoba": 0.316,
"barrel_percent": 7.1,
"hard_hit_percent": 44.4,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 329,
"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": "669160",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.2,
"ER": 14.0,
"R": 14.0,
"H": 20.0,
"BB": 10.0,
"SO": 16.0,
"HR": 3.0,
"BF": 88.0,
"Pitches": 344.0
},
"per_game": {
"IP": 4.0,
"ER": 2.8,
"R": 2.8,
"H": 4.0,
"BB": 2.0,
"SO": 3.2,
"HR": 0.6,
"BF": 17.6,
"Pitches": 68.8
},
"rates": {
"ERA": 6.4068,
"WHIP": 1.5254,
"ER_per_IP": 0.71186,
"H_per_IP": 1.01695,
"BB_per_IP": 0.50847,
"SO_per_IP": 0.81356,
"HR_per_IP": 0.15254
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 22.0,
"R": 22.0,
"H": 42.0,
"BB": 21.0,
"SO": 44.0,
"HR": 3.0,
"BF": 196.0,
"Pitches": 766.0
},
"per_game": {
"IP": 4.1,
"ER": 2.2,
"R": 2.2,
"H": 4.2,
"BB": 2.1,
"SO": 4.4,
"HR": 0.3,
"BF": 19.6,
"Pitches": 76.6
},
"rates": {
"ERA": 4.4662,
"WHIP": 1.4211,
"ER_per_IP": 0.49624,
"H_per_IP": 0.94737,
"BB_per_IP": 0.47368,
"SO_per_IP": 0.99248,
"HR_per_IP": 0.06767
}
},
"season": {
"games": 26,
"totals": {
"IP": 128.2,
"ER": 67.0,
"R": 70.0,
"H": 125.0,
"BB": 45.0,
"SO": 122.0,
"HR": 10.0,
"BF": 547.0,
"Pitches": 2095.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5769,
"R": 2.6923,
"H": 4.8077,
"BB": 1.7308,
"SO": 4.6923,
"HR": 0.3846,
"BF": 21.0385,
"Pitches": 80.5769
},
"rates": {
"ERA": 4.6865,
"WHIP": 1.3212,
"ER_per_IP": 0.52073,
"H_per_IP": 0.9715,
"BB_per_IP": 0.34974,
"SO_per_IP": 0.94819,
"HR_per_IP": 0.07772
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.545,
"predicted_H": 4.292,
"predicted_BB": 1.966,
"predicted_SO": 3.974,
"predicted_HR": 0.498,
"predicted_ERA": 5.2373,
"predicted_WHIP": 1.4309
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.545,
"final": 2.7353,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.292,
"final": 4.1699,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.966,
"final": 1.5621,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.974,
"final": 5.2393,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.498,
"final": 0.7079,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2373,
"final": 5.2373,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4309,
"final": 1.4309,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 22,
"H": 42,
"BB": 21,
"SO": 44,
"HR": 3,
"ERA": 4.466165413533835,
"WHIP": 1.4210526315789476,
"K9": 8.93233082706767,
"HR9": 0.6090225563909775,
"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-30T00:00:00"
},
"recent_form_boost": 1.0137083266205615,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 142,
"wins": 88,
"losses": 54,
"win_pct": 0.6197,
"runs_scored": 715.0,
"runs_allowed": 541.0,
"run_differential": 174.0,
"run_differential_per_game": 1.2254,
"avg_runs_scored": 5.0352,
"avg_runs_allowed": 3.8099,
"offense_index": 1.1244,
"defense_index": 1.1754,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.9,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3222
},
"opponent": {
"team": "CIN",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 588.0,
"runs_allowed": 699.0,
"run_differential": -111.0,
"run_differential_per_game": -0.7872,
"avg_runs_scored": 4.1702,
"avg_runs_allowed": 4.9574,
"offense_index": 0.9312,
"defense_index": 0.9033,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 6.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.1178
},
"edges": {
"quality_edge": 0.44,
"offense_edge": 0.1244,
"opponent_offense_edge": -0.0688,
"defense_strength": 0.1754,
"opponent_defense_weakness": 0.0967,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0256,
"run_prevention": 0.9495,
"strikeout": 1.0187
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 520.0,
"k_percent": 22.3,
"bb_percent": 8.2,
"woba": 0.316,
"xwoba": 0.316,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 44.4,
"avg_best_speed": 79.2203,
"avg_hyper_speed": 94.577,
"whiff_percent": 22.3,
"swing_percent": 47.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.203,
"command_and_miss": -0.0757,
"regression_edge": 0.0,
"xwoba_edge": -0.1429,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.9429,
"whiff_edge": -0.4143,
"bb_edge": 0.25,
"pitch_design_score": 0.148
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 92.51580093046432,
"release_spin_rate": 2533.5004535710195,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5158,
"release_spin_rate": 2533.5005,
"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.148,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0573,
"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.1215,
"sample_weight": 1.0,
"run_prevention_factor": 1.0103,
"strikeout_factor": 0.9851,
"walk_factor": 0.98,
"homer_factor": 1.0402,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669160",
"espn_id": 40937,
"player_name": "Dustin May",
"team": "MIL",
"role": "pitcher",
"espn_rank": 329,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 329,
"gp_value": 26.0,
"gp_rank": 285,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 12.0,
"qs_rank": 32,
"era_value": 4.6865,
"era_rank": null,
"w_value": 6.0,
"w_rank": 101,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 128.2,
"ip_rank": 76,
"h_value": 125.0,
"h_rank": 65,
"er_value": 67.0,
"er_rank": 38,
"hr_value": 10.0,
"hr_rank": 152,
"bb_value": 45.0,
"bb_rank": 56,
"k_value": 122.0,
"k_rank": 56,
"k_per_9_value": 8.533679,
"k_per_9_rank": 19,
"whip_value": 1.3212,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0103,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0103,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.98,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0402,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9851,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"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."
}
],
"provenance": {
"prediction": "output/games/20260905_MIL@CIN.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"
}
} |
| 20260905 | 20260905_MIL@CIN | home | Andrew Abbott | Andrew Abbott | True | 5.0 | 4.0 | -3 | 2 | 1 | -1 | 5/3 | 0/0 | 4/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.489887640449438,
"WHIP": 1.442696629213483,
"IP": 148.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.298,
"recent_avg_IP": 5.267,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4582,
"sample_weight": 1.0,
"run_prevention_factor": 1.0389,
"strikeout_factor": 0.9594,
"walk_factor": 1.032,
"homer_factor": 1.0478,
"regression_flag": "neutral",
"k_percent": 17.7,
"bb_percent": 10.8,
"woba": 0.328,
"xwoba": 0.342,
"barrel_percent": 8.2,
"hard_hit_percent": 38.4,
"whiff_percent": 22.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": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671096",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 21.0,
"R": 21.0,
"H": 33.0,
"BB": 11.0,
"SO": 20.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 435.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.2,
"H": 6.6,
"BB": 2.2,
"SO": 4.0,
"HR": 0.8,
"BF": 24.2,
"Pitches": 87.0
},
"rates": {
"ERA": 7.1772,
"WHIP": 1.6709,
"ER_per_IP": 0.79747,
"H_per_IP": 1.25316,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.75949,
"HR_per_IP": 0.1519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 33.0,
"R": 34.0,
"H": 52.0,
"BB": 25.0,
"SO": 42.0,
"HR": 6.0,
"BF": 234.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.1,
"ER": 3.3,
"R": 3.4,
"H": 5.2,
"BB": 2.5,
"SO": 4.2,
"HR": 0.6,
"BF": 23.4,
"Pitches": 90.7
},
"rates": {
"ERA": 5.5687,
"WHIP": 1.4437,
"ER_per_IP": 0.61875,
"H_per_IP": 0.975,
"BB_per_IP": 0.46875,
"SO_per_IP": 0.7875,
"HR_per_IP": 0.1125
}
},
"season": {
"games": 28,
"totals": {
"IP": 148.1,
"ER": 74.0,
"R": 78.0,
"H": 144.0,
"BB": 70.0,
"SO": 115.0,
"HR": 21.0,
"BF": 649.0,
"Pitches": 2570.0
},
"per_game": {
"IP": 5.1,
"ER": 2.6429,
"R": 2.7857,
"H": 5.1429,
"BB": 2.5,
"SO": 4.1071,
"HR": 0.75,
"BF": 23.1786,
"Pitches": 91.7857
},
"rates": {
"ERA": 4.4899,
"WHIP": 1.4427,
"ER_per_IP": 0.49888,
"H_per_IP": 0.97079,
"BB_per_IP": 0.47191,
"SO_per_IP": 0.77528,
"HR_per_IP": 0.14157
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.457,
"predicted_H": 5.759,
"predicted_BB": 2.32,
"predicted_SO": 4.253,
"predicted_HR": 0.733,
"predicted_ERA": 5.8344,
"predicted_WHIP": 1.5149
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.457,
"final": 2.8538,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.759,
"final": 5.4448,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.32,
"final": 1.3595,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.253,
"final": 4.1483,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.733,
"final": 0.4295,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8344,
"final": 5.8344,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5149,
"final": 1.5149,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 33,
"H": 52,
"BB": 25,
"SO": 42,
"HR": 6,
"ERA": 5.5687500000000005,
"WHIP": 1.44375,
"K9": 7.0875,
"HR9": 1.0125000000000002,
"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-29T00:00:00"
},
"recent_form_boost": 1.1383165268085316,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 588.0,
"runs_allowed": 699.0,
"run_differential": -111.0,
"run_differential_per_game": -0.7872,
"avg_runs_scored": 4.1702,
"avg_runs_allowed": 4.9574,
"offense_index": 0.9312,
"defense_index": 0.9033,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 6.8,
"run_differential": -17.0
},
"available": true,
"quality_score": -0.1178
},
"opponent": {
"team": "MIL",
"games": 142,
"wins": 88,
"losses": 54,
"win_pct": 0.6197,
"runs_scored": 715.0,
"runs_allowed": 541.0,
"run_differential": 174.0,
"run_differential_per_game": 1.2254,
"avg_runs_scored": 5.0352,
"avg_runs_allowed": 3.8099,
"offense_index": 1.1244,
"defense_index": 1.1754,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.9,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3222
},
"edges": {
"quality_edge": -0.44,
"offense_edge": -0.0688,
"opponent_offense_edge": 0.1244,
"defense_strength": -0.0967,
"opponent_defense_weakness": -0.1754,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9745,
"run_prevention": 1.0516,
"strikeout": 0.9768
},
"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": 571.0,
"k_percent": 17.7,
"bb_percent": 10.8,
"woba": 0.328,
"xwoba": 0.342,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.4,
"avg_best_speed": 79.5439,
"avg_hyper_speed": 94.1056,
"whiff_percent": 22.4,
"swing_percent": 46.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4959,
"command_and_miss": -0.4964,
"regression_edge": -0.4,
"xwoba_edge": -0.8857,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.0857,
"whiff_edge": -0.4,
"bb_edge": -0.4,
"pitch_design_score": -0.1434
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671096",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 87.31119791616489,
"release_spin_rate": 2448.5271060794216,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3112,
"release_spin_rate": 2448.5271,
"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.1434,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0245,
"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.4582,
"sample_weight": 1.0,
"run_prevention_factor": 1.0389,
"strikeout_factor": 0.9594,
"walk_factor": 1.032,
"homer_factor": 1.0478,
"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": 104,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 104,
"gp_value": 28.0,
"gp_rank": 236,
"gs_value": 28.0,
"gs_rank": 9,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 4.4898,
"era_rank": 45.0,
"w_value": 6.0,
"w_rank": 101,
"l_value": 10.0,
"l_rank": 15,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 148.1,
"ip_rank": 37,
"h_value": 144.0,
"h_rank": 22,
"er_value": 74.0,
"er_rank": 17,
"hr_value": 21.0,
"hr_rank": 25,
"bb_value": 70.0,
"bb_rank": 4,
"k_value": 115.0,
"k_rank": 74,
"k_per_9_value": 6.977528,
"k_per_9_rank": 54,
"whip_value": 1.4426,
"whip_rank": 48.0,
"war_value": 1.68,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0389,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0389,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.032,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0478,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9594,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260905_MIL@CIN.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"
}
} |
| 20260905 | 20260905_MIN@CHW | away | Taj Bradley | Taj Bradley | True | 5.2 | 5.0 | -2 | 5 | 4 | -1 | 7/4 | 2/2 | 3/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.848812095032397,
"WHIP": 1.263498920086393,
"IP": 154.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.716,
"recent_avg_IP": 5.533,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0057,
"sample_weight": 1.0,
"run_prevention_factor": 1.0005,
"strikeout_factor": 1.0389,
"walk_factor": 1.018,
"homer_factor": 1.0748,
"regression_flag": "neutral",
"k_percent": 27.2,
"bb_percent": 10.1,
"woba": 0.304,
"xwoba": 0.306,
"barrel_percent": 9.4,
"hard_hit_percent": 44.8,
"whiff_percent": 26.8
},
"espn_rank": {
"rank": 17,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671737",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 14.0,
"R": 14.0,
"H": 25.0,
"BB": 13.0,
"SO": 37.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 477.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8,
"R": 2.8,
"H": 5.0,
"BB": 2.6,
"SO": 7.4,
"HR": 0.8,
"BF": 24.2,
"Pitches": 95.4
},
"rates": {
"ERA": 4.5542,
"WHIP": 1.3735,
"ER_per_IP": 0.50602,
"H_per_IP": 0.90361,
"BB_per_IP": 0.46988,
"SO_per_IP": 1.33735,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 27.0,
"R": 27.0,
"H": 50.0,
"BB": 28.0,
"SO": 66.0,
"HR": 8.0,
"BF": 251.0,
"Pitches": 975.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7,
"R": 2.7,
"H": 5.0,
"BB": 2.8,
"SO": 6.6,
"HR": 0.8,
"BF": 25.1,
"Pitches": 97.5
},
"rates": {
"ERA": 4.142,
"WHIP": 1.3295,
"ER_per_IP": 0.46023,
"H_per_IP": 0.85227,
"BB_per_IP": 0.47727,
"SO_per_IP": 1.125,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 27,
"totals": {
"IP": 154.1,
"ER": 66.0,
"R": 66.0,
"H": 129.0,
"BB": 66.0,
"SO": 178.0,
"HR": 21.0,
"BF": 654.0,
"Pitches": 2621.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4444,
"R": 2.4444,
"H": 4.7778,
"BB": 2.4444,
"SO": 6.5926,
"HR": 0.7778,
"BF": 24.2222,
"Pitches": 97.0741
},
"rates": {
"ERA": 3.8488,
"WHIP": 1.2635,
"ER_per_IP": 0.42765,
"H_per_IP": 0.83585,
"BB_per_IP": 0.42765,
"SO_per_IP": 1.15335,
"HR_per_IP": 0.13607
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.755,
"predicted_H": 5.116,
"predicted_BB": 2.592,
"predicted_SO": 6.809,
"predicted_HR": 0.812,
"predicted_ERA": 4.3013,
"predicted_WHIP": 1.337
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.755,
"final": 3.6889,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.116,
"final": 5.8997,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.592,
"final": 2.3457,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 6.809,
"final": 5.2245,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.812,
"final": 0.8902,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3013,
"final": 4.3013,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.337,
"final": 1.337,
"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": 27,
"H": 50,
"BB": 28,
"SO": 66,
"HR": 8,
"ERA": 4.142045454545454,
"WHIP": 1.3295454545454544,
"K9": 10.125,
"HR9": 1.227272727272727,
"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-31T00:00:00"
},
"recent_form_boost": 0.9749571518085314,
"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": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671737",
"player_name": "Taj Bradley",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 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": "MIN",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 659.0,
"runs_allowed": 700.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2908,
"avg_runs_scored": 4.6738,
"avg_runs_allowed": 4.9645,
"offense_index": 1.0437,
"defense_index": 0.902,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.6,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0918
},
"opponent": {
"team": "CHW",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 666.0,
"runs_allowed": 624.0,
"run_differential": 42.0,
"run_differential_per_game": 0.2979,
"avg_runs_scored": 4.7234,
"avg_runs_allowed": 4.4255,
"offense_index": 1.0548,
"defense_index": 1.0119,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.8,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0927
},
"edges": {
"quality_edge": -0.1845,
"offense_edge": 0.0437,
"opponent_offense_edge": 0.0548,
"defense_strength": -0.098,
"opponent_defense_weakness": -0.0119,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9875,
"run_prevention": 1.0278,
"strikeout": 0.9901
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671737",
"profile": {
"available": true,
"pitcher_id": "671737",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 598.0,
"k_percent": 27.2,
"bb_percent": 10.1,
"woba": 0.304,
"xwoba": 0.306,
"sweet_spot_percent": 39.2,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 44.8,
"avg_best_speed": 80.791,
"avg_hyper_speed": 94.8678,
"whiff_percent": 26.8,
"swing_percent": 47.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1953,
"command_and_miss": 0.3693,
"regression_edge": -0.0571,
"xwoba_edge": 0.1429,
"barrel_edge": -0.4889,
"hard_hit_edge": -1.0,
"whiff_edge": 0.2286,
"bb_edge": -0.225,
"pitch_design_score": 0.1667
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671737",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.84991659997009,
"release_spin_rate": 2176.795721962065,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.84991659997009,
"release_spin_rate": 2176.795721962065,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8499,
"release_spin_rate": 2176.7957,
"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.1667,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.191,
"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.0057,
"sample_weight": 1.0,
"run_prevention_factor": 1.0005,
"strikeout_factor": 1.0389,
"walk_factor": 1.018,
"homer_factor": 1.0748,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "671737",
"espn_id": 42480,
"player_name": "Taj Bradley",
"team": "MIN",
"role": "pitcher",
"espn_rank": 17,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 17,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 27.0,
"gs_rank": 27,
"qs_value": 12.0,
"qs_rank": 32,
"era_value": 3.8488,
"era_rank": 28.0,
"w_value": 10.0,
"w_rank": 27,
"l_value": 6.0,
"l_rank": 107,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 154.1,
"ip_rank": 26,
"h_value": 129.0,
"h_rank": 54,
"er_value": 66.0,
"er_rank": 41,
"hr_value": 21.0,
"hr_rank": 25,
"bb_value": 66.0,
"bb_rank": 7,
"k_value": 178.0,
"k_rank": 11,
"k_per_9_value": 10.38013,
"k_per_9_rank": 11,
"whip_value": 1.2634,
"whip_rank": 35.0,
"war_value": 3.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0005,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0005,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.018,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0748,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0389,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 112,
"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/20260905_MIN@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"
}
} |
| 20260905 | 20260905_MIN@CHW | home | Anthony Kay | Anthony Kay | True | 5.1 | 4.1 | -3 | 4 | 5 | 1 | 2/6 | 3/1 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2804878048780495,
"WHIP": 1.353658536585366,
"IP": 136.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.987,
"recent_avg_IP": 5.333,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3208,
"sample_weight": 1.0,
"run_prevention_factor": 1.0273,
"strikeout_factor": 0.9697,
"walk_factor": 0.976,
"homer_factor": 1.0545,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 8.0,
"woba": 0.338,
"xwoba": 0.339,
"barrel_percent": 8.5,
"hard_hit_percent": 39.1,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 93,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641743",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 16.0,
"R": 17.0,
"H": 29.0,
"BB": 7.0,
"SO": 23.0,
"HR": 5.0,
"BF": 117.0,
"Pitches": 451.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 5.8,
"BB": 1.4,
"SO": 4.6,
"HR": 1.0,
"BF": 23.4,
"Pitches": 90.2
},
"rates": {
"ERA": 5.4,
"WHIP": 1.35,
"ER_per_IP": 0.6,
"H_per_IP": 1.0875,
"BB_per_IP": 0.2625,
"SO_per_IP": 0.8625,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.2,
"ER": 25.0,
"R": 26.0,
"H": 52.0,
"BB": 16.0,
"SO": 46.0,
"HR": 8.0,
"BF": 230.0,
"Pitches": 891.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.6,
"H": 5.2,
"BB": 1.6,
"SO": 4.6,
"HR": 0.8,
"BF": 23.0,
"Pitches": 89.1
},
"rates": {
"ERA": 4.2722,
"WHIP": 1.2911,
"ER_per_IP": 0.47468,
"H_per_IP": 0.98734,
"BB_per_IP": 0.3038,
"SO_per_IP": 0.87342,
"HR_per_IP": 0.1519
}
},
"season": {
"games": 28,
"totals": {
"IP": 136.2,
"ER": 65.0,
"R": 70.0,
"H": 136.0,
"BB": 49.0,
"SO": 113.0,
"HR": 19.0,
"BF": 611.0,
"Pitches": 2434.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3214,
"R": 2.5,
"H": 4.8571,
"BB": 1.75,
"SO": 4.0357,
"HR": 0.6786,
"BF": 21.8214,
"Pitches": 86.9286
},
"rates": {
"ERA": 4.2805,
"WHIP": 1.3537,
"ER_per_IP": 0.47561,
"H_per_IP": 0.99512,
"BB_per_IP": 0.35854,
"SO_per_IP": 0.82683,
"HR_per_IP": 0.13902
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.776,
"predicted_H": 5.405,
"predicted_BB": 1.623,
"predicted_SO": 4.596,
"predicted_HR": 0.857,
"predicted_ERA": 4.7352,
"predicted_WHIP": 1.3319
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.776,
"final": 2.8687,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.405,
"final": 3.9953,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.623,
"final": 2.1931,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.596,
"final": 5.1773,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.857,
"final": 0.9162,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7352,
"final": 4.7352,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3319,
"final": 1.3319,
"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": 52,
"BB": 16,
"SO": 46,
"HR": 8,
"ERA": 4.272151898734178,
"WHIP": 1.2911392405063291,
"K9": 7.860759493670886,
"HR9": 1.3670886075949367,
"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-31T00:00:00"
},
"recent_form_boost": 0.9886339714287847,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641743",
"player_name": "Anthony Kay",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 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": 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": "CHW",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 666.0,
"runs_allowed": 624.0,
"run_differential": 42.0,
"run_differential_per_game": 0.2979,
"avg_runs_scored": 4.7234,
"avg_runs_allowed": 4.4255,
"offense_index": 1.0548,
"defense_index": 1.0119,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.8,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.0927
},
"opponent": {
"team": "MIN",
"games": 141,
"wins": 67,
"losses": 74,
"win_pct": 0.4752,
"runs_scored": 659.0,
"runs_allowed": 700.0,
"run_differential": -41.0,
"run_differential_per_game": -0.2908,
"avg_runs_scored": 4.6738,
"avg_runs_allowed": 4.9645,
"offense_index": 1.0437,
"defense_index": 0.902,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 4.6,
"run_differential": 13.0
},
"available": true,
"quality_score": -0.0918
},
"edges": {
"quality_edge": 0.1845,
"offense_edge": 0.0548,
"opponent_offense_edge": 0.0437,
"defense_strength": 0.0119,
"opponent_defense_weakness": 0.098,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.006,
"run_prevention": 0.9966,
"strikeout": 1.002
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641743",
"profile": {
"available": true,
"pitcher_id": "641743",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 18.5,
"bb_percent": 8.0,
"woba": 0.338,
"xwoba": 0.339,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 39.1,
"avg_best_speed": 76.4042,
"avg_hyper_speed": 94.2295,
"whiff_percent": 23.4,
"swing_percent": 47.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.451,
"command_and_miss": -0.255,
"regression_edge": -0.0286,
"xwoba_edge": -0.8,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.1857,
"whiff_edge": -0.2571,
"bb_edge": 0.3,
"pitch_design_score": 0.0113
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641743",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 86,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 86,
"pitch_usage": 0.0,
"release_speed": 90.07512309635388,
"release_spin_rate": 2281.5022496307865,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.0751,
"release_spin_rate": 2281.5022,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0113,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0811,
"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.3208,
"sample_weight": 1.0,
"run_prevention_factor": 1.0273,
"strikeout_factor": 0.9697,
"walk_factor": 0.976,
"homer_factor": 1.0545,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641743",
"espn_id": 40947,
"player_name": "Anthony Kay",
"team": "CHW",
"role": "pitcher",
"espn_rank": 93,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 93,
"gp_value": 28.0,
"gp_rank": 236,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 4.2804,
"era_rank": null,
"w_value": 9.0,
"w_rank": 37,
"l_value": 7.0,
"l_rank": 80,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 136.2,
"ip_rank": 58,
"h_value": 136.0,
"h_rank": 38,
"er_value": 65.0,
"er_rank": 45,
"hr_value": 19.0,
"hr_rank": 41,
"bb_value": 49.0,
"bb_rank": 38,
"k_value": 113.0,
"k_rank": 77,
"k_per_9_value": 7.4414635,
"k_per_9_rank": 35,
"whip_value": 1.3536,
"whip_rank": null,
"war_value": 1.78,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0273,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0273,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0545,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9697,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260905_MIN@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"
}
} |
| 20260905 | 20260905_NYY@SD | away | Carlos Rodón | Carlos Rodón | True | 5.2 | 5.0 | -2 | 0 | 1 | 1 | 3/2 | 1/3 | 5/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2033898305084745,
"WHIP": 1.1864406779661016,
"IP": 59.0,
"games_started": null,
"games_pitched": 12,
"role_avg_IP": 4.917,
"recent_avg_IP": 4.6,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0184,
"sample_weight": 0.84,
"run_prevention_factor": 0.9984,
"strikeout_factor": 1.0317,
"walk_factor": 1.0571,
"homer_factor": 0.9892,
"regression_flag": "negative_pitcher_regression",
"k_percent": 25.5,
"bb_percent": 12.6,
"woba": 0.275,
"xwoba": 0.311,
"barrel_percent": 6.7,
"hard_hit_percent": 37.1,
"whiff_percent": 28.3
},
"espn_rank": {
"rank": 182,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 59.0,
"season_ERA": 3.203,
"season_WHIP": 1.186,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607074",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 12,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 7.0,
"R": 10.0,
"H": 14.0,
"BB": 11.0,
"SO": 22.0,
"HR": 2.0,
"BF": 96.0,
"Pitches": 413.0
},
"per_game": {
"IP": 4.2,
"ER": 1.4,
"R": 2.0,
"H": 2.8,
"BB": 2.2,
"SO": 4.4,
"HR": 0.4,
"BF": 19.2,
"Pitches": 82.6
},
"rates": {
"ERA": 2.7391,
"WHIP": 1.087,
"ER_per_IP": 0.30435,
"H_per_IP": 0.6087,
"BB_per_IP": 0.47826,
"SO_per_IP": 0.95652,
"HR_per_IP": 0.08696
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 16.0,
"R": 19.0,
"H": 34.0,
"BB": 23.0,
"SO": 53.0,
"HR": 5.0,
"BF": 209.0,
"Pitches": 892.0
},
"per_game": {
"IP": 5.0,
"ER": 1.6,
"R": 1.9,
"H": 3.4,
"BB": 2.3,
"SO": 5.3,
"HR": 0.5,
"BF": 20.9,
"Pitches": 89.2
},
"rates": {
"ERA": 2.8235,
"WHIP": 1.1176,
"ER_per_IP": 0.31373,
"H_per_IP": 0.66667,
"BB_per_IP": 0.45098,
"SO_per_IP": 1.03922,
"HR_per_IP": 0.09804
}
},
"season": {
"games": 12,
"totals": {
"IP": 59.0,
"ER": 21.0,
"R": 25.0,
"H": 39.0,
"BB": 31.0,
"SO": 63.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 1058.0
},
"per_game": {
"IP": 5.0,
"ER": 1.75,
"R": 2.0833,
"H": 3.25,
"BB": 2.5833,
"SO": 5.25,
"HR": 0.4167,
"BF": 20.5833,
"Pitches": 88.1667
},
"rates": {
"ERA": 3.2034,
"WHIP": 1.1864,
"ER_per_IP": 0.35593,
"H_per_IP": 0.66102,
"BB_per_IP": 0.52542,
"SO_per_IP": 1.0678,
"HR_per_IP": 0.08475
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.887,
"predicted_H": 3.751,
"predicted_BB": 2.274,
"predicted_SO": 5.024,
"predicted_HR": 0.543,
"predicted_ERA": 3.3366,
"predicted_WHIP": 1.1836
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4743,
"form_weight": 0.5257,
"form_reliability": 0.7059,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.887,
"final": 0.9921,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.751,
"final": 3.3948,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.274,
"final": 1.6698,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.024,
"final": 4.5384,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.543,
"final": 0.2855,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3366,
"final": 3.3366,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1836,
"final": 1.1836,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 16,
"H": 34,
"BB": 23,
"SO": 53,
"HR": 5,
"ERA": 2.823529411764706,
"WHIP": 1.1176470588235294,
"K9": 9.352941176470589,
"HR9": 0.8823529411764706,
"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-29T00:00:00"
},
"recent_form_boost": 0.8213266371026492,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7059,
"prior_weight": 0.2941
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 0,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"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": 1.0,
"predicted_ER": 0.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": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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.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": 1.0,
"predicted_ER": 0.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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.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": 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.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": "NYY",
"games": 141,
"wins": 80,
"losses": 61,
"win_pct": 0.5674,
"runs_scored": 638.0,
"runs_allowed": 524.0,
"run_differential": 114.0,
"run_differential_per_game": 0.8085,
"avg_runs_scored": 4.5248,
"avg_runs_allowed": 3.7163,
"offense_index": 1.0104,
"defense_index": 1.205,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.6,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1916
},
"opponent": {
"team": "SD",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 597.0,
"runs_allowed": 586.0,
"run_differential": 11.0,
"run_differential_per_game": 0.078,
"avg_runs_scored": 4.234,
"avg_runs_allowed": 4.156,
"offense_index": 0.9455,
"defense_index": 1.0775,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.8,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0393
},
"edges": {
"quality_edge": 0.2309,
"offense_edge": 0.0104,
"opponent_offense_edge": -0.0545,
"defense_strength": 0.205,
"opponent_defense_weakness": -0.0775,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0176,
"run_prevention": 0.9592,
"strikeout": 1.0113
},
"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": 210.0,
"k_percent": 25.5,
"bb_percent": 12.6,
"woba": 0.275,
"xwoba": 0.311,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.2602,
"avg_hyper_speed": 93.9794,
"whiff_percent": 28.3,
"swing_percent": 48.1
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1192,
"command_and_miss": 0.21,
"regression_edge": -1.0286,
"xwoba_edge": 0.0,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.1,
"whiff_edge": 0.4429,
"bb_edge": -0.85,
"pitch_design_score": 0.0427
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607074",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 90.63452766848432,
"release_spin_rate": 2322.88227271101,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6345,
"release_spin_rate": 2322.8823,
"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.0427,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3048,
"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.0184,
"sample_weight": 0.84,
"run_prevention_factor": 0.9984,
"strikeout_factor": 1.0317,
"walk_factor": 1.0571,
"homer_factor": 0.9892,
"woba_minus_xwoba": -0.036,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "607074",
"espn_id": 33696,
"player_name": "Carlos Rodon",
"team": "NYY",
"role": "pitcher",
"espn_rank": 182,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 182,
"gp_value": 12.0,
"gp_rank": 487,
"gs_value": 12.0,
"gs_rank": 155,
"qs_value": 3.0,
"qs_rank": 138,
"era_value": 3.2033,
"era_rank": null,
"w_value": 4.0,
"w_rank": 181,
"l_value": 3.0,
"l_rank": 230,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 59.0,
"ip_rank": 229,
"h_value": 39.0,
"h_rank": 326,
"er_value": 21.0,
"er_rank": 294,
"hr_value": 5.0,
"hr_rank": 306,
"bb_value": 31.0,
"bb_rank": 146,
"k_value": 63.0,
"k_rank": 203,
"k_per_9_value": 9.610169,
"k_per_9_rank": 23,
"whip_value": 1.1864,
"whip_rank": null,
"war_value": 1.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9987,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9987,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.048,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9909,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0266,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 88,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260905_NYY@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"
}
} |
| 20260905 | 20260905_NYY@SD | home | Robbie Ray | Robbie Ray | True | 5.2 | 2.1 | -10 | 3 | 5 | 2 | 5/5 | 5/4 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.140939597315436,
"WHIP": 1.3020134228187918,
"IP": 149.0,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.487,
"recent_avg_IP": 5.267,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2621,
"sample_weight": 1.0,
"run_prevention_factor": 1.0223,
"strikeout_factor": 0.9903,
"walk_factor": 1.05,
"homer_factor": 1.0442,
"regression_flag": "neutral",
"k_percent": 20.3,
"bb_percent": 11.7,
"woba": 0.309,
"xwoba": 0.33,
"barrel_percent": 8.8,
"hard_hit_percent": 37.7,
"whiff_percent": 25.2
},
"espn_rank": {
"rank": 47,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 149.0,
"season_ERA": 3.141,
"season_WHIP": 1.302,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592662",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 10.0,
"R": 10.0,
"H": 20.0,
"BB": 16.0,
"SO": 19.0,
"HR": 5.0,
"BF": 110.0,
"Pitches": 459.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 3.2,
"SO": 3.8,
"HR": 1.0,
"BF": 22.0,
"Pitches": 91.8
},
"rates": {
"ERA": 3.4177,
"WHIP": 1.3671,
"ER_per_IP": 0.37975,
"H_per_IP": 0.75949,
"BB_per_IP": 0.60759,
"SO_per_IP": 0.72152,
"HR_per_IP": 0.18987
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 16.0,
"R": 18.0,
"H": 47.0,
"BB": 30.0,
"SO": 44.0,
"HR": 6.0,
"BF": 226.0,
"Pitches": 899.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6,
"R": 1.8,
"H": 4.7,
"BB": 3.0,
"SO": 4.4,
"HR": 0.6,
"BF": 22.6,
"Pitches": 89.9
},
"rates": {
"ERA": 2.7,
"WHIP": 1.4437,
"ER_per_IP": 0.3,
"H_per_IP": 0.88125,
"BB_per_IP": 0.5625,
"SO_per_IP": 0.825,
"HR_per_IP": 0.1125
}
},
"season": {
"games": 27,
"totals": {
"IP": 149.0,
"ER": 52.0,
"R": 60.0,
"H": 121.0,
"BB": 73.0,
"SO": 126.0,
"HR": 20.0,
"BF": 622.0,
"Pitches": 2520.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9259,
"R": 2.2222,
"H": 4.4815,
"BB": 2.7037,
"SO": 4.6667,
"HR": 0.7407,
"BF": 23.037,
"Pitches": 93.3333
},
"rates": {
"ERA": 3.1409,
"WHIP": 1.302,
"ER_per_IP": 0.34899,
"H_per_IP": 0.81208,
"BB_per_IP": 0.48993,
"SO_per_IP": 0.84564,
"HR_per_IP": 0.13423
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.01,
"predicted_H": 4.556,
"predicted_BB": 2.925,
"predicted_SO": 4.39,
"predicted_HR": 0.82,
"predicted_ERA": 3.3245,
"predicted_WHIP": 1.3748
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.01,
"final": 2.8378,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.556,
"final": 4.7407,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.925,
"final": 3.7882,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.39,
"final": 3.8118,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.82,
"final": 0.8949,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3245,
"final": 3.3245,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3748,
"final": 1.3748,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 16,
"H": 47,
"BB": 30,
"SO": 44,
"HR": 6,
"ERA": 2.7,
"WHIP": 1.44375,
"K9": 7.425000000000001,
"HR9": 1.0125000000000002,
"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-30T00:00:00"
},
"recent_form_boost": 0.8155821518085316,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 5.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"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": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.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": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"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": 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.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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 141,
"wins": 74,
"losses": 67,
"win_pct": 0.5248,
"runs_scored": 597.0,
"runs_allowed": 586.0,
"run_differential": 11.0,
"run_differential_per_game": 0.078,
"avg_runs_scored": 4.234,
"avg_runs_allowed": 4.156,
"offense_index": 0.9455,
"defense_index": 1.0775,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.8,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0393
},
"opponent": {
"team": "NYY",
"games": 141,
"wins": 80,
"losses": 61,
"win_pct": 0.5674,
"runs_scored": 638.0,
"runs_allowed": 524.0,
"run_differential": 114.0,
"run_differential_per_game": 0.8085,
"avg_runs_scored": 4.5248,
"avg_runs_allowed": 3.7163,
"offense_index": 1.0104,
"defense_index": 1.205,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 3.6,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.1916
},
"edges": {
"quality_edge": -0.2309,
"offense_edge": -0.0545,
"opponent_offense_edge": 0.0104,
"defense_strength": 0.0775,
"opponent_defense_weakness": -0.205,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9927,
"run_prevention": 1.0055,
"strikeout": 0.9922
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 551.0,
"k_percent": 20.3,
"bb_percent": 11.7,
"woba": 0.309,
"xwoba": 0.33,
"sweet_spot_percent": 31.8,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 37.7,
"avg_best_speed": 78.4638,
"avg_hyper_speed": 94.0504,
"whiff_percent": 25.2,
"swing_percent": 46.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2412,
"command_and_miss": -0.2343,
"regression_edge": -0.6,
"xwoba_edge": -0.5429,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.0143,
"whiff_edge": 0.0,
"bb_edge": -0.625,
"pitch_design_score": -0.0761
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"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": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.51374193206205,
"release_spin_rate": 2134.8108860159628,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5137,
"release_spin_rate": 2134.8109,
"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.0761,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5435,
"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.2621,
"sample_weight": 1.0,
"run_prevention_factor": 1.0223,
"strikeout_factor": 0.9903,
"walk_factor": 1.05,
"homer_factor": 1.0442,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592662",
"espn_id": 32175,
"player_name": "Robbie Ray",
"team": "SD",
"role": "pitcher",
"espn_rank": 47,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 47,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 11.0,
"qs_rank": 43,
"era_value": 3.1409,
"era_rank": 17.0,
"w_value": 11.0,
"w_rank": 20,
"l_value": 7.0,
"l_rank": 80,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 149.0,
"ip_rank": 35,
"h_value": 121.0,
"h_rank": 69,
"er_value": 52.0,
"er_rank": 92,
"hr_value": 20.0,
"hr_rank": 32,
"bb_value": 73.0,
"bb_rank": 1,
"k_value": 126.0,
"k_rank": 54,
"k_per_9_value": 7.6107383,
"k_per_9_rank": 41,
"whip_value": 1.302,
"whip_rank": 40.0,
"war_value": 2.57,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0223,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0223,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.05,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0442,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9903,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 117,
"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 -10 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260905_NYY@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"
}
} |
| 20260905 | 20260905_OAK@SEA | away | Jeffrey Springs | Jeffrey Springs | True | 4.0 | 7.0 | 9 | 5 | 0 | -5 | 5/2 | 3/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.365853658536586,
"WHIP": 1.4959349593495934,
"IP": 123.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 4.92,
"recent_avg_IP": 4.067,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3712,
"sample_weight": 1.0,
"run_prevention_factor": 1.0316,
"strikeout_factor": 0.964,
"walk_factor": 0.998,
"homer_factor": 1.0507,
"regression_flag": "positive_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 9.1,
"woba": 0.375,
"xwoba": 0.339,
"barrel_percent": 9.6,
"hard_hit_percent": 35.0,
"whiff_percent": 23.0
},
"espn_rank": {
"rank": 819,
"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": "605488",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.1,
"ER": 19.0,
"R": 20.0,
"H": 26.0,
"BB": 12.0,
"SO": 12.0,
"HR": 6.0,
"BF": 98.0,
"Pitches": 386.0
},
"per_game": {
"IP": 4.0,
"ER": 3.8,
"R": 4.0,
"H": 5.2,
"BB": 2.4,
"SO": 2.4,
"HR": 1.2,
"BF": 19.6,
"Pitches": 77.2
},
"rates": {
"ERA": 8.4098,
"WHIP": 1.8689,
"ER_per_IP": 0.93443,
"H_per_IP": 1.27869,
"BB_per_IP": 0.59016,
"SO_per_IP": 0.59016,
"HR_per_IP": 0.29508
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.0,
"ER": 42.0,
"R": 43.0,
"H": 53.0,
"BB": 27.0,
"SO": 30.0,
"HR": 14.0,
"BF": 208.0,
"Pitches": 821.0
},
"per_game": {
"IP": 4.1,
"ER": 4.2,
"R": 4.3,
"H": 5.3,
"BB": 2.7,
"SO": 3.0,
"HR": 1.4,
"BF": 20.8,
"Pitches": 82.1
},
"rates": {
"ERA": 8.5909,
"WHIP": 1.8182,
"ER_per_IP": 0.95455,
"H_per_IP": 1.20455,
"BB_per_IP": 0.61364,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.31818
}
},
"season": {
"games": 25,
"totals": {
"IP": 123.0,
"ER": 87.0,
"R": 94.0,
"H": 134.0,
"BB": 50.0,
"SO": 98.0,
"HR": 33.0,
"BF": 548.0,
"Pitches": 2139.0
},
"per_game": {
"IP": 5.0,
"ER": 3.48,
"R": 3.76,
"H": 5.36,
"BB": 2.0,
"SO": 3.92,
"HR": 1.32,
"BF": 21.92,
"Pitches": 85.56
},
"rates": {
"ERA": 6.3659,
"WHIP": 1.4959,
"ER_per_IP": 0.70732,
"H_per_IP": 1.08943,
"BB_per_IP": 0.4065,
"SO_per_IP": 0.79675,
"HR_per_IP": 0.26829
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 3.63,
"predicted_H": 5.137,
"predicted_BB": 2.318,
"predicted_SO": 3.103,
"predicted_HR": 1.192,
"predicted_ERA": 7.4664,
"predicted_WHIP": 1.7041
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.63,
"final": 3.7856,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.137,
"final": 4.659,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.318,
"final": 2.6047,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.103,
"final": 4.321,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.192,
"final": 1.1113,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.4664,
"final": 7.4664,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7041,
"final": 1.7041,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.0,
"ER": 42,
"H": 53,
"BB": 27,
"SO": 30,
"HR": 14,
"ERA": 8.590909090909092,
"WHIP": 1.8181818181818181,
"K9": 6.136363636363637,
"HR9": 2.8636363636363638,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.4252142269957289,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "605488",
"player_name": "Jeffrey Springs",
"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": 4.0,
"predicted_H": 4.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"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.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 142,
"wins": 56,
"losses": 86,
"win_pct": 0.3944,
"runs_scored": 625.0,
"runs_allowed": 815.0,
"run_differential": -190.0,
"run_differential_per_game": -1.338,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 5.7394,
"offense_index": 0.9806,
"defense_index": 0.782,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.2537
},
"opponent": {
"team": "SEA",
"games": 142,
"wins": 66,
"losses": 76,
"win_pct": 0.4648,
"runs_scored": 565.0,
"runs_allowed": 634.0,
"run_differential": -69.0,
"run_differential_per_game": -0.4859,
"avg_runs_scored": 3.9789,
"avg_runs_allowed": 4.4648,
"offense_index": 0.8865,
"defense_index": 1.0053,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.8,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1595
},
"edges": {
"quality_edge": -0.0942,
"offense_edge": -0.0194,
"opponent_offense_edge": -0.1135,
"defense_strength": -0.218,
"opponent_defense_weakness": -0.0053,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 0.9942,
"run_prevention": 1.0084,
"strikeout": 1.0063
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "605488",
"profile": {
"available": true,
"pitcher_id": "605488",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 495.0,
"k_percent": 17.9,
"bb_percent": 9.1,
"woba": 0.375,
"xwoba": 0.339,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 35.0,
"avg_best_speed": 76.3003,
"avg_hyper_speed": 93.4604,
"whiff_percent": 23.0,
"swing_percent": 46.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6434,
"command_and_miss": -0.3686,
"regression_edge": 1.0286,
"xwoba_edge": -0.8,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.4,
"whiff_edge": -0.3143,
"bb_edge": 0.025,
"pitch_design_score": -0.224
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "605488",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 71,
"pitch_usage": 0.0,
"release_speed": 85.87226981566755,
"release_spin_rate": 2002.2499973783792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8723,
"release_spin_rate": 2002.25,
"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.224,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6001,
"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.3712,
"sample_weight": 1.0,
"run_prevention_factor": 1.0316,
"strikeout_factor": 0.964,
"walk_factor": 0.998,
"homer_factor": 1.0507,
"woba_minus_xwoba": 0.036,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "605488",
"espn_id": 35397,
"player_name": "Jeffrey Springs",
"team": "ATH",
"role": "pitcher",
"espn_rank": 819,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 819,
"gp_value": 25.0,
"gp_rank": 308,
"gs_value": 25.0,
"gs_rank": 55,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 6.3658,
"era_rank": null,
"w_value": 3.0,
"w_rank": 238,
"l_value": 13.0,
"l_rank": 3,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 123.0,
"ip_rank": 88,
"h_value": 134.0,
"h_rank": 41,
"er_value": 87.0,
"er_rank": 3,
"hr_value": 33.0,
"hr_rank": 1,
"bb_value": 50.0,
"bb_rank": 33,
"k_value": 98.0,
"k_rank": 101,
"k_per_9_value": 7.1707315,
"k_per_9_rank": 30,
"whip_value": 1.4959,
"whip_rank": null,
"war_value": -0.83,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0316,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0316,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0507,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.964,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by +9 outs from the projected workload."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 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/20260905_OAK@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"
}
} |
| 20260905 | 20260905_OAK@SEA | home | George Kirby | George Kirby | True | 5.1 | 6.2 | 4 | 6 | 3 | -3 | 10/7 | 0/1 | 3/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.185589519650655,
"WHIP": 1.349344978165939,
"IP": 152.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.872,
"recent_avg_IP": 5.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0128,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 0.9709,
"walk_factor": 0.928,
"homer_factor": 1.0066,
"regression_flag": "neutral",
"k_percent": 20.0,
"bb_percent": 5.6,
"woba": 0.336,
"xwoba": 0.307,
"barrel_percent": 6.8,
"hard_hit_percent": 40.8,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 126,
"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": "669923",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 18.0,
"R": 18.0,
"H": 34.0,
"BB": 10.0,
"SO": 18.0,
"HR": 4.0,
"BF": 117.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 3.6,
"H": 6.8,
"BB": 2.0,
"SO": 3.6,
"HR": 0.8,
"BF": 23.4,
"Pitches": 92.0
},
"rates": {
"ERA": 6.3117,
"WHIP": 1.7143,
"ER_per_IP": 0.7013,
"H_per_IP": 1.32468,
"BB_per_IP": 0.38961,
"SO_per_IP": 0.7013,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 29.0,
"R": 29.0,
"H": 64.0,
"BB": 13.0,
"SO": 44.0,
"HR": 10.0,
"BF": 238.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 2.9,
"H": 6.4,
"BB": 1.3,
"SO": 4.4,
"HR": 1.0,
"BF": 23.8,
"Pitches": 88.6
},
"rates": {
"ERA": 4.6059,
"WHIP": 1.3588,
"ER_per_IP": 0.51176,
"H_per_IP": 1.12941,
"BB_per_IP": 0.22941,
"SO_per_IP": 0.77647,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 26,
"totals": {
"IP": 152.2,
"ER": 71.0,
"R": 75.0,
"H": 170.0,
"BB": 36.0,
"SO": 128.0,
"HR": 19.0,
"BF": 640.0,
"Pitches": 2368.0
},
"per_game": {
"IP": 6.0,
"ER": 2.7308,
"R": 2.8846,
"H": 6.5385,
"BB": 1.3846,
"SO": 4.9231,
"HR": 0.7308,
"BF": 24.6154,
"Pitches": 91.0769
},
"rates": {
"ERA": 4.1856,
"WHIP": 1.3493,
"ER_per_IP": 0.46507,
"H_per_IP": 1.11354,
"BB_per_IP": 0.23581,
"SO_per_IP": 0.83843,
"HR_per_IP": 0.12445
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.105,
"predicted_H": 6.364,
"predicted_BB": 1.7,
"predicted_SO": 4.25,
"predicted_HR": 0.84,
"predicted_ERA": 5.1584,
"predicted_WHIP": 1.4887
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 3.105,
"final": 4.3155,
"source": "model_form_blend"
},
"predicted_H": {
"model": 10.0,
"form": 6.364,
"final": 7.8844,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.7,
"final": 0.9891,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.25,
"final": 3.7273,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.84,
"final": 0.9069,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1584,
"final": 5.1584,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4887,
"final": 1.4887,
"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": 29,
"H": 64,
"BB": 13,
"SO": 44,
"HR": 10,
"ERA": 4.605882352941176,
"WHIP": 1.3588235294117645,
"K9": 6.988235294117646,
"HR9": 1.588235294117647,
"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-31T00:00:00"
},
"recent_form_boost": 1.027870754749708,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 6.0,
"predicted_H": 10.0,
"predicted_BB": 0.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669923",
"player_name": "George Kirby",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 10.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 10.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 6.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 10.0,
"after": 10.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 142,
"wins": 66,
"losses": 76,
"win_pct": 0.4648,
"runs_scored": 565.0,
"runs_allowed": 634.0,
"run_differential": -69.0,
"run_differential_per_game": -0.4859,
"avg_runs_scored": 3.9789,
"avg_runs_allowed": 4.4648,
"offense_index": 0.8865,
"defense_index": 1.0053,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.8,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1595
},
"opponent": {
"team": "OAK",
"games": 142,
"wins": 56,
"losses": 86,
"win_pct": 0.3944,
"runs_scored": 625.0,
"runs_allowed": 815.0,
"run_differential": -190.0,
"run_differential_per_game": -1.338,
"avg_runs_scored": 4.4014,
"avg_runs_allowed": 5.7394,
"offense_index": 0.9806,
"defense_index": 0.782,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 5.1,
"run_differential": 0.0
},
"available": true,
"quality_score": -0.2537
},
"edges": {
"quality_edge": 0.0942,
"offense_edge": -0.1135,
"opponent_offense_edge": -0.0194,
"defense_strength": 0.0053,
"opponent_defense_weakness": 0.218,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 1.0047,
"run_prevention": 0.9917,
"strikeout": 1.0044
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669923",
"profile": {
"available": true,
"pitcher_id": "669923",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 564.0,
"k_percent": 20.0,
"bb_percent": 5.6,
"woba": 0.336,
"xwoba": 0.307,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 40.8,
"avg_best_speed": 79.1411,
"avg_hyper_speed": 94.1577,
"whiff_percent": 22.1,
"swing_percent": 52.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0936,
"command_and_miss": -0.1036,
"regression_edge": 0.8286,
"xwoba_edge": 0.1143,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.4429,
"bb_edge": 0.9,
"pitch_design_score": 0.1164
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669923",
"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": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 91.95180614765201,
"release_spin_rate": 2266.8919829070005,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.9518,
"release_spin_rate": 2266.892,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1164,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8317,
"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.0128,
"sample_weight": 1.0,
"run_prevention_factor": 0.9989,
"strikeout_factor": 0.9709,
"walk_factor": 0.928,
"homer_factor": 1.0066,
"woba_minus_xwoba": 0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669923",
"espn_id": 42406,
"player_name": "George Kirby",
"team": "SEA",
"role": "pitcher",
"espn_rank": 126,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 126,
"gp_value": 26.0,
"gp_rank": 285,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 14.0,
"qs_rank": 19,
"era_value": 4.1855,
"era_rank": 38.0,
"w_value": 9.0,
"w_rank": 37,
"l_value": 10.0,
"l_rank": 15,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 152.2,
"ip_rank": 29,
"h_value": 170.0,
"h_rank": 4,
"er_value": 71.0,
"er_rank": 21,
"hr_value": 19.0,
"hr_rank": 41,
"bb_value": 36.0,
"bb_rank": 111,
"k_value": 128.0,
"k_rank": 51,
"k_per_9_value": 7.545851,
"k_per_9_rank": 47,
"whip_value": 1.3493,
"whip_rank": 42.0,
"war_value": 1.4,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9989,
"adjusted": 3
},
"predicted_H": {
"original": 7.0,
"factor": 0.9989,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 0.928,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0066,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9709,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 10,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 0,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 97,
"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": "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/20260905_OAK@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"
}
} |
| 20260905 | 20260905_SF@NYM | away | Anthony Molina | Anthony Molina | True | 3.0 | 5.0 | 6 | 2 | 0 | -2 | 3/1 | 1/1 | 2/6 | Last 10 before this game (5 available){
"model_context": {
"embedded_season": {
"ERA": 3.7674418604651163,
"WHIP": 1.0465116279069766,
"IP": 14.1,
"games_started": null,
"games_pitched": 5,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0261,
"sample_weight": 0.45,
"run_prevention_factor": 1.0022,
"strikeout_factor": 0.99,
"walk_factor": 0.9496,
"homer_factor": 0.9891,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.1,
"bb_percent": 3.6,
"woba": 0.28,
"xwoba": 0.323,
"barrel_percent": 6.7,
"hard_hit_percent": 33.3,
"whiff_percent": 27.2
},
"espn_rank": {
"rank": 338,
"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.881,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3656,
"prior_weight": 0.6344
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683627",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 5,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 14.1,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 215.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2,
"R": 1.4,
"H": 2.6,
"BB": 0.4,
"SO": 1.8,
"HR": 0.4,
"BF": 11.2,
"Pitches": 43.0
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.0465,
"ER_per_IP": 0.4186,
"H_per_IP": 0.90698,
"BB_per_IP": 0.13953,
"SO_per_IP": 0.62791,
"HR_per_IP": 0.13953
}
},
"last_10": {
"games": 5,
"totals": {
"IP": 14.1,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 215.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2,
"R": 1.4,
"H": 2.6,
"BB": 0.4,
"SO": 1.8,
"HR": 0.4,
"BF": 11.2,
"Pitches": 43.0
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.0465,
"ER_per_IP": 0.4186,
"H_per_IP": 0.90698,
"BB_per_IP": 0.13953,
"SO_per_IP": 0.62791,
"HR_per_IP": 0.13953
}
},
"season": {
"games": 5,
"totals": {
"IP": 14.1,
"ER": 6.0,
"R": 7.0,
"H": 13.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 56.0,
"Pitches": 215.0
},
"per_game": {
"IP": 3.0,
"ER": 1.2,
"R": 1.4,
"H": 2.6,
"BB": 0.4,
"SO": 1.8,
"HR": 0.4,
"BF": 11.2,
"Pitches": 43.0
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.0465,
"ER_per_IP": 0.4186,
"H_per_IP": 0.90698,
"BB_per_IP": 0.13953,
"SO_per_IP": 0.62791,
"HR_per_IP": 0.13953
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.0,
"predicted_H": 4.044,
"predicted_BB": 1.223,
"predicted_SO": 3.519,
"predicted_HR": 0.612,
"predicted_ERA": 4.2175,
"predicted_WHIP": 1.2339
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.618,
"form_weight": 0.382,
"form_reliability": 0.3656,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.881,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3656,
"prior_weight": 0.6344
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.0,
"final": 2.0,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.044,
"final": 3.3988,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.223,
"final": 1.0852,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.519,
"final": 2.5802,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.612,
"final": 0.2338,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2175,
"final": 4.2175,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2339,
"final": 1.2339,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 14.1,
"ER": 6,
"H": 13,
"BB": 2,
"SO": 9,
"HR": 2,
"ERA": 3.7674418604651168,
"WHIP": 1.0465116279069768,
"K9": 5.651162790697675,
"HR9": 1.255813953488372,
"games_pitched": 5,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 5,
"error_prone": false
},
"games_count": 5,
"latest_game_date": "2026-08-31T00:00:00"
},
"recent_form_boost": 0.9651960091650975,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.881,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.3656,
"prior_weight": 0.6344
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683627",
"player_name": "Anthony Molina",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"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": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 3.0,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 142,
"wins": 58,
"losses": 84,
"win_pct": 0.4085,
"runs_scored": 592.0,
"runs_allowed": 669.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5423,
"avg_runs_scored": 4.169,
"avg_runs_allowed": 4.7113,
"offense_index": 0.9275,
"defense_index": 0.9541,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 6.5,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1791
},
"opponent": {
"team": "NYM",
"games": 141,
"wins": 64,
"losses": 77,
"win_pct": 0.4539,
"runs_scored": 587.0,
"runs_allowed": 633.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3262,
"avg_runs_scored": 4.1631,
"avg_runs_allowed": 4.4894,
"offense_index": 0.9262,
"defense_index": 1.0012,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.7,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0791
},
"edges": {
"quality_edge": -0.1,
"offense_edge": -0.0725,
"opponent_offense_edge": -0.0738,
"defense_strength": -0.0459,
"opponent_defense_weakness": -0.0012,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9976,
"run_prevention": 0.9978,
"strikeout": 1.0029
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683627",
"profile": {
"available": true,
"pitcher_id": "683627",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 12.0,
"k_percent": 16.1,
"bb_percent": 3.6,
"woba": 0.28,
"xwoba": 0.323,
"sweet_spot_percent": 40.0,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 33.3,
"avg_best_speed": 73.7307,
"avg_hyper_speed": 93.3764,
"whiff_percent": 27.2,
"swing_percent": 53.0
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.116,
"command_and_miss": 0.0007,
"regression_edge": -1.2286,
"xwoba_edge": -0.3429,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.6429,
"whiff_edge": 0.2857,
"bb_edge": 1.4,
"pitch_design_score": -0.0041
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683627",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 27,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 27,
"pitch_usage": 0.0,
"release_speed": 89.79893899204244,
"release_spin_rate": 2093.420424403183,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 27,
"pitch_usage": 0.0,
"release_speed": 89.79893899204244,
"release_spin_rate": 2093.420424403183,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7989,
"release_spin_rate": 2093.4204,
"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.0041,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0294,
"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.0261,
"sample_weight": 0.45,
"run_prevention_factor": 1.0022,
"strikeout_factor": 0.99,
"walk_factor": 0.9496,
"homer_factor": 0.9891,
"woba_minus_xwoba": -0.043,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "683627",
"espn_id": 5016983,
"player_name": "Anthony Molina",
"team": "SF",
"role": "pitcher",
"espn_rank": 338,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 338,
"gp_value": 5.0,
"gp_rank": 619,
"gs_value": 1.0,
"gs_rank": 296,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.7674,
"era_rank": null,
"w_value": 2.0,
"w_rank": 306,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 14.1,
"ip_rank": 560,
"h_value": 13.0,
"h_rank": 585,
"er_value": 6.0,
"er_rank": 619,
"hr_value": 2.0,
"hr_rank": 513,
"bb_value": 2.0,
"bb_rank": 710,
"k_value": 9.0,
"k_rank": 598,
"k_per_9_value": 5.6511626,
"k_per_9_rank": 28,
"whip_value": 1.0465,
"whip_rank": null,
"war_value": 0.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.001,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.001,
"adjusted": 6
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9773,
"adjusted": 0
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9951,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9955,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 13,
"Pitches": 57,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 5 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260905_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260905 | 20260905_SF@NYM | home | Zac Thornton | Zac Thornton | True | 5.2 | 5.0 | -2 | 1 | 6 | 5 | 3/7 | 1/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.934782608695652,
"WHIP": 1.1576086956521738,
"IP": 61.1,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 5.576,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2277,
"sample_weight": 0.72,
"run_prevention_factor": 1.0194,
"strikeout_factor": 0.9593,
"walk_factor": 0.9496,
"homer_factor": 1.0272,
"regression_flag": "negative_pitcher_regression",
"k_percent": 18.4,
"bb_percent": 5.7,
"woba": 0.298,
"xwoba": 0.329,
"barrel_percent": 8.2,
"hard_hit_percent": 38.6,
"whiff_percent": 18.9
},
"espn_rank": {
"rank": 90,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 61.1,
"season_ERA": 2.935,
"season_WHIP": 1.158,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.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": "804267",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 9.0,
"R": 9.0,
"H": 31.0,
"BB": 4.0,
"SO": 21.0,
"HR": 4.0,
"BF": 111.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8,
"R": 1.8,
"H": 6.2,
"BB": 0.8,
"SO": 4.2,
"HR": 0.8,
"BF": 22.2,
"Pitches": 85.6
},
"rates": {
"ERA": 3.0,
"WHIP": 1.2963,
"ER_per_IP": 0.33333,
"H_per_IP": 1.14815,
"BB_per_IP": 0.14815,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.14815
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 16.0,
"R": 17.0,
"H": 53.0,
"BB": 12.0,
"SO": 42.0,
"HR": 6.0,
"BF": 226.0,
"Pitches": 844.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.7,
"H": 5.3,
"BB": 1.2,
"SO": 4.2,
"HR": 0.6,
"BF": 22.6,
"Pitches": 84.4
},
"rates": {
"ERA": 2.5263,
"WHIP": 1.1404,
"ER_per_IP": 0.2807,
"H_per_IP": 0.92982,
"BB_per_IP": 0.21053,
"SO_per_IP": 0.73684,
"HR_per_IP": 0.10526
}
},
"season": {
"games": 11,
"totals": {
"IP": 61.1,
"ER": 20.0,
"R": 21.0,
"H": 57.0,
"BB": 14.0,
"SO": 45.0,
"HR": 7.0,
"BF": 245.0,
"Pitches": 924.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8182,
"R": 1.9091,
"H": 5.1818,
"BB": 1.2727,
"SO": 4.0909,
"HR": 0.6364,
"BF": 22.2727,
"Pitches": 84.0
},
"rates": {
"ERA": 2.9348,
"WHIP": 1.1576,
"ER_per_IP": 0.32609,
"H_per_IP": 0.92935,
"BB_per_IP": 0.22826,
"SO_per_IP": 0.7337,
"HR_per_IP": 0.11413
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.064,
"predicted_H": 5.619,
"predicted_BB": 1.357,
"predicted_SO": 4.516,
"predicted_HR": 0.736,
"predicted_ERA": 3.3386,
"predicted_WHIP": 1.254
}
},
"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": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.064,
"final": 1.5511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.619,
"final": 4.3566,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.357,
"final": 1.1849,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.516,
"final": 3.7852,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.736,
"final": 1.3453,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3386,
"final": 3.3386,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.254,
"final": 1.254,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 16,
"H": 53,
"BB": 12,
"SO": 42,
"HR": 6,
"ERA": 2.526315789473684,
"WHIP": 1.1403508771929824,
"K9": 6.631578947368421,
"HR9": 0.9473684210526315,
"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-30T00:00:00"
},
"recent_form_boost": 0.7884577000541455,
"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": 3.0,
"predicted_HR": 2.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": "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": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804267",
"player_name": "Zac Thornton",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.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": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 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": 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": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 141,
"wins": 64,
"losses": 77,
"win_pct": 0.4539,
"runs_scored": 587.0,
"runs_allowed": 633.0,
"run_differential": -46.0,
"run_differential_per_game": -0.3262,
"avg_runs_scored": 4.1631,
"avg_runs_allowed": 4.4894,
"offense_index": 0.9262,
"defense_index": 1.0012,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 4.7,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0791
},
"opponent": {
"team": "SF",
"games": 142,
"wins": 58,
"losses": 84,
"win_pct": 0.4085,
"runs_scored": 592.0,
"runs_allowed": 669.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5423,
"avg_runs_scored": 4.169,
"avg_runs_allowed": 4.7113,
"offense_index": 0.9275,
"defense_index": 0.9541,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 6.1,
"avg_runs_allowed": 6.5,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.1791
},
"edges": {
"quality_edge": 0.1,
"offense_edge": -0.0738,
"opponent_offense_edge": -0.0725,
"defense_strength": 0.0012,
"opponent_defense_weakness": 0.0459,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0069,
"run_prevention": 0.9833,
"strikeout": 1.0088
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804267",
"profile": {
"available": true,
"pitcher_id": "804267",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 180.0,
"k_percent": 18.4,
"bb_percent": 5.7,
"woba": 0.298,
"xwoba": 0.329,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 38.6,
"avg_best_speed": 77.439,
"avg_hyper_speed": 94.2167,
"whiff_percent": 18.9,
"swing_percent": 51.5
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2152,
"command_and_miss": -0.3714,
"regression_edge": -0.8857,
"xwoba_edge": -0.5143,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.1143,
"whiff_edge": -0.9,
"bb_edge": 0.875,
"pitch_design_score": -0.1332
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804267",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 84,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.4931944684895,
"release_spin_rate": 2355.422462840988,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 84,
"pitch_usage": 0.0,
"release_speed": 87.4931944684895,
"release_spin_rate": 2355.422462840988,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4932,
"release_spin_rate": 2355.4225,
"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.1332,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9517,
"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.2277,
"sample_weight": 0.72,
"run_prevention_factor": 1.0194,
"strikeout_factor": 0.9593,
"walk_factor": 0.9496,
"homer_factor": 1.0272,
"woba_minus_xwoba": -0.031,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "804267",
"espn_id": 5129576,
"player_name": "Zac Thornton",
"team": "NYM",
"role": "pitcher",
"espn_rank": 90,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 90,
"gp_value": 11.0,
"gp_rank": 500,
"gs_value": 11.0,
"gs_rank": 161,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 2.9347,
"era_rank": null,
"w_value": 3.0,
"w_rank": 238,
"l_value": 4.0,
"l_rank": 172,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 61.1,
"ip_rank": 211,
"h_value": 57.0,
"h_rank": 195,
"er_value": 20.0,
"er_rank": 314,
"hr_value": 7.0,
"hr_rank": 221,
"bb_value": 14.0,
"bb_rank": 390,
"k_value": 45.0,
"k_rank": 315,
"k_per_9_value": 6.6032605,
"k_per_9_rank": 40,
"whip_value": 1.1576,
"whip_rank": null,
"war_value": 1.82,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.014,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.014,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9637,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0196,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9707,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was +5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
}
],
"provenance": {
"prediction": "output/games/20260905_SF@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260905 | 20260905_STL@COL | away | Matthew Liberatore | Matthew Liberatore | True | 5.1 | 4.1 | -3 | 4 | 5 | 1 | 7/4 | 1/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.413366336633664,
"WHIP": 1.4702970297029705,
"IP": 134.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.988,
"recent_avg_IP": 5.2,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3635,
"sample_weight": 1.0,
"run_prevention_factor": 1.0309,
"strikeout_factor": 1.0034,
"walk_factor": 0.976,
"homer_factor": 1.0947,
"regression_flag": "neutral",
"k_percent": 23.9,
"bb_percent": 8.0,
"woba": 0.356,
"xwoba": 0.339,
"barrel_percent": 9.6,
"hard_hit_percent": 42.7,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 835,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669461",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 21.0,
"R": 22.0,
"H": 30.0,
"BB": 6.0,
"SO": 34.0,
"HR": 6.0,
"BF": 113.0,
"Pitches": 487.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.4,
"H": 6.0,
"BB": 1.2,
"SO": 6.8,
"HR": 1.2,
"BF": 22.6,
"Pitches": 97.4
},
"rates": {
"ERA": 7.2692,
"WHIP": 1.3846,
"ER_per_IP": 0.80769,
"H_per_IP": 1.15385,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.30769,
"HR_per_IP": 0.23077
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 32.0,
"R": 34.0,
"H": 56.0,
"BB": 14.0,
"SO": 62.0,
"HR": 8.0,
"BF": 222.0,
"Pitches": 883.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 5.6,
"BB": 1.4,
"SO": 6.2,
"HR": 0.8,
"BF": 22.2,
"Pitches": 88.3
},
"rates": {
"ERA": 5.5385,
"WHIP": 1.3462,
"ER_per_IP": 0.61538,
"H_per_IP": 1.07692,
"BB_per_IP": 0.26923,
"SO_per_IP": 1.19231,
"HR_per_IP": 0.15385
}
},
"season": {
"games": 27,
"totals": {
"IP": 134.2,
"ER": 81.0,
"R": 87.0,
"H": 151.0,
"BB": 47.0,
"SO": 141.0,
"HR": 25.0,
"BF": 589.0,
"Pitches": 2307.0
},
"per_game": {
"IP": 5.0,
"ER": 3.0,
"R": 3.2222,
"H": 5.5926,
"BB": 1.7407,
"SO": 5.2222,
"HR": 0.9259,
"BF": 21.8148,
"Pitches": 85.4444
},
"rates": {
"ERA": 5.4134,
"WHIP": 1.4703,
"ER_per_IP": 0.60149,
"H_per_IP": 1.12129,
"BB_per_IP": 0.34901,
"SO_per_IP": 1.04703,
"HR_per_IP": 0.18564
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.488,
"predicted_H": 5.732,
"predicted_BB": 1.484,
"predicted_SO": 6.123,
"predicted_HR": 0.978,
"predicted_ERA": 6.0087,
"predicted_WHIP": 1.3811
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.488,
"final": 3.701,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.732,
"final": 6.2595,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.484,
"final": 1.2827,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.123,
"final": 5.2398,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.978,
"final": 0.9872,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.0087,
"final": 6.0087,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3811,
"final": 1.3811,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 32,
"H": 56,
"BB": 14,
"SO": 62,
"HR": 8,
"ERA": 5.538461538461538,
"WHIP": 1.3461538461538463,
"K9": 10.73076923076923,
"HR9": 1.3846153846153846,
"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-30T00:00:00"
},
"recent_form_boost": 1.132469171039301,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669461",
"player_name": "Matthew Liberatore",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 640.0,
"runs_allowed": 648.0,
"run_differential": -8.0,
"run_differential_per_game": -0.0563,
"avg_runs_scored": 4.507,
"avg_runs_allowed": 4.5634,
"offense_index": 1.0065,
"defense_index": 0.9813,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 6.1,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0069
},
"opponent": {
"team": "COL",
"games": 141,
"wins": 54,
"losses": 87,
"win_pct": 0.383,
"runs_scored": 661.0,
"runs_allowed": 802.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.6879,
"avg_runs_allowed": 5.6879,
"offense_index": 1.0469,
"defense_index": 0.7873,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.6,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.2573
},
"edges": {
"quality_edge": 0.2504,
"offense_edge": 0.0065,
"opponent_offense_edge": 0.0469,
"defense_strength": -0.0187,
"opponent_defense_weakness": 0.2127,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0076,
"run_prevention": 0.9969,
"strikeout": 1.0038
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669461",
"profile": {
"available": true,
"pitcher_id": "669461",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 23.9,
"bb_percent": 8.0,
"woba": 0.356,
"xwoba": 0.339,
"sweet_spot_percent": 40.7,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 42.7,
"avg_best_speed": 79.8843,
"avg_hyper_speed": 94.676,
"whiff_percent": 23.9,
"swing_percent": 46.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7822,
"command_and_miss": 0.1171,
"regression_edge": 0.4857,
"xwoba_edge": -0.8,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.7,
"whiff_edge": -0.1857,
"bb_edge": 0.3,
"pitch_design_score": -0.0555
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669461",
"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": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.88051548154917,
"release_spin_rate": 2373.4956500680873,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8805,
"release_spin_rate": 2373.4957,
"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.0555,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3968,
"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.3635,
"sample_weight": 1.0,
"run_prevention_factor": 1.0309,
"strikeout_factor": 1.0034,
"walk_factor": 0.976,
"homer_factor": 1.0947,
"woba_minus_xwoba": 0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669461",
"espn_id": 41173,
"player_name": "Matthew Liberatore",
"team": "STL",
"role": "pitcher",
"espn_rank": 835,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 835,
"gp_value": 27.0,
"gp_rank": 264,
"gs_value": 27.0,
"gs_rank": 27,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 5.4133,
"era_rank": null,
"w_value": 5.0,
"w_rank": 138,
"l_value": 13.0,
"l_rank": 3,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 134.2,
"ip_rank": 63,
"h_value": 151.0,
"h_rank": 14,
"er_value": 81.0,
"er_rank": 6,
"hr_value": 25.0,
"hr_rank": 14,
"bb_value": 47.0,
"bb_rank": 46,
"k_value": 141.0,
"k_rank": 37,
"k_per_9_value": 9.423267,
"k_per_9_rank": 15,
"whip_value": 1.4702,
"whip_rank": null,
"war_value": -1.03,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0309,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0309,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0947,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0034,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 25,
"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."
}
],
"provenance": {
"prediction": "output/games/20260905_STL@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"
}
} |
| 20260905 | 20260905_STL@COL | home | Mason Adams | Mason Adams | True | 4.1 | 4.2 | 1 | 4 | 3 | -1 | 5/8 | 2/1 | 2/7 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 3.0,
"WHIP": 1.4444444444444444,
"IP": 9.0,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 4.5,
"recent_avg_IP": 4.5,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2468,
"sample_weight": 0.45,
"run_prevention_factor": 1.021,
"strikeout_factor": 1.0031,
"walk_factor": 1.036,
"homer_factor": 1.0848,
"regression_flag": "neutral",
"k_percent": 26.3,
"bb_percent": 13.2,
"woba": 0.36,
"xwoba": 0.344,
"barrel_percent": 13.0,
"hard_hit_percent": 47.8,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 296,
"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": "690279",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 9.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 5.0,
"SO": 10.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 149.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5,
"R": 1.5,
"H": 4.0,
"BB": 2.5,
"SO": 5.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 74.5
},
"rates": {
"ERA": 3.0,
"WHIP": 1.4444,
"ER_per_IP": 0.33333,
"H_per_IP": 0.88889,
"BB_per_IP": 0.55556,
"SO_per_IP": 1.11111,
"HR_per_IP": 0.22222
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 9.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 5.0,
"SO": 10.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 149.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5,
"R": 1.5,
"H": 4.0,
"BB": 2.5,
"SO": 5.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 74.5
},
"rates": {
"ERA": 3.0,
"WHIP": 1.4444,
"ER_per_IP": 0.33333,
"H_per_IP": 0.88889,
"BB_per_IP": 0.55556,
"SO_per_IP": 1.11111,
"HR_per_IP": 0.22222
}
},
"season": {
"games": 2,
"totals": {
"IP": 9.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 5.0,
"SO": 10.0,
"HR": 2.0,
"BF": 38.0,
"Pitches": 149.0
},
"per_game": {
"IP": 4.2,
"ER": 1.5,
"R": 1.5,
"H": 4.0,
"BB": 2.5,
"SO": 5.0,
"HR": 1.0,
"BF": 19.0,
"Pitches": 74.5
},
"rates": {
"ERA": 3.0,
"WHIP": 1.4444,
"ER_per_IP": 0.33333,
"H_per_IP": 0.88889,
"BB_per_IP": 0.55556,
"SO_per_IP": 1.11111,
"HR_per_IP": 0.22222
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.103,
"predicted_H": 4.42,
"predicted_BB": 1.979,
"predicted_SO": 4.606,
"predicted_HR": 0.782,
"predicted_ERA": 4.0549,
"predicted_WHIP": 1.3712
}
},
"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.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.103,
"final": 3.3394,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.42,
"final": 4.798,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.979,
"final": 1.9927,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.606,
"final": 2.9074,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.782,
"final": 0.9241,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0549,
"final": 4.0549,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3712,
"final": 1.3712,
"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": 9.0,
"ER": 3,
"H": 8,
"BB": 5,
"SO": 10,
"HR": 2,
"ERA": 3.0,
"WHIP": 1.4444444444444444,
"K9": 10.0,
"HR9": 2.0,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.9556666445529202,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 2.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": 4.1,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "690279",
"player_name": "Mason Adams",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 141,
"wins": 54,
"losses": 87,
"win_pct": 0.383,
"runs_scored": 661.0,
"runs_allowed": 802.0,
"run_differential": -141.0,
"run_differential_per_game": -1.0,
"avg_runs_scored": 4.6879,
"avg_runs_allowed": 5.6879,
"offense_index": 1.0469,
"defense_index": 0.7873,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.6,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.2573
},
"opponent": {
"team": "STL",
"games": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 640.0,
"runs_allowed": 648.0,
"run_differential": -8.0,
"run_differential_per_game": -0.0563,
"avg_runs_scored": 4.507,
"avg_runs_allowed": 4.5634,
"offense_index": 1.0065,
"defense_index": 0.9813,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 6.1,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0069
},
"edges": {
"quality_edge": -0.2504,
"offense_edge": 0.0469,
"opponent_offense_edge": 0.0065,
"defense_strength": -0.2127,
"opponent_defense_weakness": 0.0187,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9833,
"run_prevention": 1.0348,
"strikeout": 0.992
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "690279",
"profile": {
"available": true,
"pitcher_id": "690279",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 0.0,
"k_percent": 26.3,
"bb_percent": 13.2,
"woba": 0.36,
"xwoba": 0.344,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 13.0,
"hard_hit_percent": 47.8,
"avg_best_speed": 82.1601,
"avg_hyper_speed": 95.417,
"whiff_percent": 22.1,
"swing_percent": 45.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.0244,
"command_and_miss": -0.0786,
"regression_edge": 0.4571,
"xwoba_edge": -0.9429,
"barrel_edge": -1.2889,
"hard_hit_edge": -1.4286,
"whiff_edge": -0.4429,
"bb_edge": -1.0,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "690279",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": -0.2468,
"sample_weight": 0.45,
"run_prevention_factor": 1.021,
"strikeout_factor": 1.0031,
"walk_factor": 1.036,
"homer_factor": 1.0848,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "690279",
"espn_id": 4758424,
"player_name": "Mason Adams",
"team": "COL",
"role": "pitcher",
"espn_rank": 296,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 296,
"gp_value": 2.0,
"gp_rank": 746,
"gs_value": 2.0,
"gs_rank": 271,
"qs_value": 0.0,
"qs_rank": 207,
"era_value": 3.0,
"era_rank": null,
"w_value": 0.0,
"w_rank": 526,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 9.0,
"ip_rank": 628,
"h_value": 8.0,
"h_rank": 654,
"er_value": 3.0,
"er_rank": 702,
"hr_value": 2.0,
"hr_rank": 513,
"bb_value": 5.0,
"bb_rank": 613,
"k_value": 10.0,
"k_rank": 582,
"k_per_9_value": 10.0,
"k_per_9_rank": 25,
"whip_value": 1.4444,
"whip_rank": null,
"war_value": 0.34,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0094,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0094,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0162,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0382,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0014,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 90,
"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 -1."
}
],
"provenance": {
"prediction": "output/games/20260905_STL@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"
}
} |
| 20260905 | 20260905_TB@TEX | away | Drew Rasmussen | Drew Rasmussen | True | 6.0 | 7.0 | 3 | 3 | 1 | -2 | 3/3 | 2/0 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.952164009111617,
"WHIP": 0.929384965831435,
"IP": 146.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.628,
"recent_avg_IP": 5.8,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.509,
"sample_weight": 1.0,
"run_prevention_factor": 0.9567,
"strikeout_factor": 1.02,
"walk_factor": 0.91,
"homer_factor": 0.9272,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 4.7,
"woba": 0.249,
"xwoba": 0.275,
"barrel_percent": 5.9,
"hard_hit_percent": 34.5,
"whiff_percent": 24.7
},
"espn_rank": {
"rank": 22,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 146.1,
"season_ERA": 2.952,
"season_WHIP": 0.929,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656876",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 10.0,
"R": 10.0,
"H": 20.0,
"BB": 7.0,
"SO": 27.0,
"HR": 1.0,
"BF": 113.0,
"Pitches": 461.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.4,
"SO": 5.4,
"HR": 0.2,
"BF": 22.6,
"Pitches": 92.2
},
"rates": {
"ERA": 3.1034,
"WHIP": 0.931,
"ER_per_IP": 0.34483,
"H_per_IP": 0.68966,
"BB_per_IP": 0.24138,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.03448
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 23.0,
"R": 23.0,
"H": 45.0,
"BB": 11.0,
"SO": 55.0,
"HR": 4.0,
"BF": 218.0,
"Pitches": 875.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.3,
"H": 4.5,
"BB": 1.1,
"SO": 5.5,
"HR": 0.4,
"BF": 21.8,
"Pitches": 87.5
},
"rates": {
"ERA": 3.8098,
"WHIP": 1.0307,
"ER_per_IP": 0.42331,
"H_per_IP": 0.82822,
"BB_per_IP": 0.20245,
"SO_per_IP": 1.01227,
"HR_per_IP": 0.07362
}
},
"season": {
"games": 26,
"totals": {
"IP": 146.1,
"ER": 48.0,
"R": 50.0,
"H": 109.0,
"BB": 27.0,
"SO": 149.0,
"HR": 13.0,
"BF": 574.0,
"Pitches": 2281.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8462,
"R": 1.9231,
"H": 4.1923,
"BB": 1.0385,
"SO": 5.7308,
"HR": 0.5,
"BF": 22.0769,
"Pitches": 87.7308
},
"rates": {
"ERA": 2.9522,
"WHIP": 0.9294,
"ER_per_IP": 0.32802,
"H_per_IP": 0.74487,
"BB_per_IP": 0.18451,
"SO_per_IP": 1.01822,
"HR_per_IP": 0.08884
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.191,
"predicted_H": 4.413,
"predicted_BB": 1.357,
"predicted_SO": 5.457,
"predicted_HR": 0.411,
"predicted_ERA": 3.5069,
"predicted_WHIP": 1.0263
}
},
"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": 3.0,
"form": 2.191,
"final": 2.5293,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.413,
"final": 3.8222,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.357,
"final": 1.6259,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.457,
"final": 5.6841,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.411,
"final": 0.2391,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5069,
"final": 3.5069,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0263,
"final": 1.0263,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 23,
"H": 45,
"BB": 11,
"SO": 55,
"HR": 4,
"ERA": 3.809815950920245,
"WHIP": 1.030674846625767,
"K9": 9.110429447852761,
"HR9": 0.6625766871165644,
"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-30T00:00:00"
},
"recent_form_boost": 0.9301095674527033,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656876",
"player_name": "Drew Rasmussen",
"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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "TB",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 635.0,
"runs_allowed": 589.0,
"run_differential": 46.0,
"run_differential_per_game": 0.3262,
"avg_runs_scored": 4.5035,
"avg_runs_allowed": 4.1773,
"offense_index": 1.0057,
"defense_index": 1.072,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1564
},
"opponent": {
"team": "TEX",
"games": 142,
"wins": 70,
"losses": 72,
"win_pct": 0.493,
"runs_scored": 584.0,
"runs_allowed": 627.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3028,
"avg_runs_scored": 4.1127,
"avg_runs_allowed": 4.4155,
"offense_index": 0.9184,
"defense_index": 1.0142,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.8,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0781
},
"edges": {
"quality_edge": 0.2345,
"offense_edge": 0.0057,
"opponent_offense_edge": -0.0816,
"defense_strength": 0.072,
"opponent_defense_weakness": -0.0142,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0148,
"run_prevention": 0.968,
"strikeout": 1.0136
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656876",
"profile": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 529.0,
"k_percent": 26.0,
"bb_percent": 4.7,
"woba": 0.249,
"xwoba": 0.275,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 34.5,
"avg_best_speed": 77.6597,
"avg_hyper_speed": 93.5844,
"whiff_percent": 24.7,
"swing_percent": 50.5
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8088,
"command_and_miss": 0.4571,
"regression_edge": -0.7429,
"xwoba_edge": 1.0286,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.4714,
"whiff_edge": -0.0714,
"bb_edge": 1.125,
"pitch_design_score": 0.143
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 92.42635744843004,
"release_spin_rate": 2377.5376841860666,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4264,
"release_spin_rate": 2377.5377,
"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.143,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0216,
"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.509,
"sample_weight": 1.0,
"run_prevention_factor": 0.9567,
"strikeout_factor": 1.02,
"walk_factor": 0.91,
"homer_factor": 0.9272,
"woba_minus_xwoba": -0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656876",
"espn_id": 42584,
"player_name": "Drew Rasmussen",
"team": "TB",
"role": "pitcher",
"espn_rank": 22,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 22,
"gp_value": 26.0,
"gp_rank": 285,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 15.0,
"qs_rank": 15,
"era_value": 2.9521,
"era_rank": 11.0,
"w_value": 14.0,
"w_rank": 5,
"l_value": 5.0,
"l_rank": 131,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 146.1,
"ip_rank": 44,
"h_value": 109.0,
"h_rank": 94,
"er_value": 48.0,
"er_rank": 108,
"hr_value": 13.0,
"hr_rank": 113,
"bb_value": 27.0,
"bb_rank": 188,
"k_value": 149.0,
"k_rank": 28,
"k_per_9_value": 9.164008,
"k_per_9_rank": 17,
"whip_value": 0.9293,
"whip_rank": 3.0,
"war_value": 3.4,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9567,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9567,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.91,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9272,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.02,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 105,
"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/20260905_TB@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"
}
} |
| 20260905 | 20260905_TB@TEX | home | Jacob deGrom | Jacob deGrom | True | 5.0 | 6.0 | 3 | 4 | 2 | -2 | 5/4 | 2/1 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9975728155339803,
"WHIP": 1.128640776699029,
"IP": 137.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.282,
"recent_avg_IP": 4.733,
"last_start_IP": 7.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": 1.0926,
"walk_factor": 0.948,
"homer_factor": 1.036,
"regression_flag": "neutral",
"k_percent": 29.8,
"bb_percent": 6.6,
"woba": 0.282,
"xwoba": 0.291,
"barrel_percent": 8.1,
"hard_hit_percent": 44.3,
"whiff_percent": 33.6
},
"espn_rank": {
"rank": 78,
"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": "594798",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 11.0,
"R": 11.0,
"H": 17.0,
"BB": 8.0,
"SO": 32.0,
"HR": 1.0,
"BF": 93.0,
"Pitches": 407.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.2,
"H": 3.4,
"BB": 1.6,
"SO": 6.4,
"HR": 0.2,
"BF": 18.6,
"Pitches": 81.4
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.0563,
"ER_per_IP": 0.46479,
"H_per_IP": 0.71831,
"BB_per_IP": 0.33803,
"SO_per_IP": 1.35211,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 26.0,
"R": 26.0,
"H": 47.0,
"BB": 17.0,
"SO": 61.0,
"HR": 2.0,
"BF": 206.0,
"Pitches": 861.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.6,
"H": 4.7,
"BB": 1.7,
"SO": 6.1,
"HR": 0.2,
"BF": 20.6,
"Pitches": 86.1
},
"rates": {
"ERA": 4.8082,
"WHIP": 1.3151,
"ER_per_IP": 0.53425,
"H_per_IP": 0.96575,
"BB_per_IP": 0.34932,
"SO_per_IP": 1.25342,
"HR_per_IP": 0.0411
}
},
"season": {
"games": 26,
"totals": {
"IP": 137.1,
"ER": 61.0,
"R": 61.0,
"H": 118.0,
"BB": 37.0,
"SO": 167.0,
"HR": 17.0,
"BF": 561.0,
"Pitches": 2290.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3462,
"R": 2.3462,
"H": 4.5385,
"BB": 1.4231,
"SO": 6.4231,
"HR": 0.6538,
"BF": 21.5769,
"Pitches": 88.0769
},
"rates": {
"ERA": 3.9976,
"WHIP": 1.1286,
"ER_per_IP": 0.44417,
"H_per_IP": 0.85922,
"BB_per_IP": 0.26942,
"SO_per_IP": 1.21602,
"HR_per_IP": 0.12379
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.401,
"predicted_H": 4.217,
"predicted_BB": 1.653,
"predicted_SO": 6.081,
"predicted_HR": 0.356,
"predicted_ERA": 4.3829,
"predicted_WHIP": 1.1905
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.401,
"final": 3.0696,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.217,
"final": 4.5444,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.653,
"final": 1.7981,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.081,
"final": 5.2108,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.356,
"final": 0.6253,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3829,
"final": 4.3829,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1905,
"final": 1.1905,
"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.2,
"ER": 26,
"H": 47,
"BB": 17,
"SO": 61,
"HR": 2,
"ERA": 4.808219178082192,
"WHIP": 1.315068493150685,
"K9": 11.28082191780822,
"HR9": 0.36986301369863017,
"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-31T00:00:00"
},
"recent_form_boost": 1.049539771671545,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "594798",
"player_name": "Jacob deGrom",
"position": "Starter",
"team": "TEX",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 142,
"wins": 70,
"losses": 72,
"win_pct": 0.493,
"runs_scored": 584.0,
"runs_allowed": 627.0,
"run_differential": -43.0,
"run_differential_per_game": -0.3028,
"avg_runs_scored": 4.1127,
"avg_runs_allowed": 4.4155,
"offense_index": 0.9184,
"defense_index": 1.0142,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 5.8,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.0781
},
"opponent": {
"team": "TB",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 635.0,
"runs_allowed": 589.0,
"run_differential": 46.0,
"run_differential_per_game": 0.3262,
"avg_runs_scored": 4.5035,
"avg_runs_allowed": 4.1773,
"offense_index": 1.0057,
"defense_index": 1.072,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.5,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.1564
},
"edges": {
"quality_edge": -0.2345,
"offense_edge": -0.0816,
"opponent_offense_edge": 0.0057,
"defense_strength": 0.0142,
"opponent_defense_weakness": -0.072,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9908,
"run_prevention": 1.0112,
"strikeout": 0.9925
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "594798",
"profile": {
"available": true,
"pitcher_id": "594798",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 29.8,
"bb_percent": 6.6,
"woba": 0.282,
"xwoba": 0.291,
"sweet_spot_percent": 37.8,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 44.3,
"avg_best_speed": 80.384,
"avg_hyper_speed": 94.6014,
"whiff_percent": 33.6,
"swing_percent": 51.3
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1497,
"command_and_miss": 1.0514,
"regression_edge": -0.2571,
"xwoba_edge": 0.5714,
"barrel_edge": -0.2,
"hard_hit_edge": -0.9286,
"whiff_edge": 1.2,
"bb_edge": 0.65,
"pitch_design_score": 0.1774
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"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": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 93.0397745860885,
"release_spin_rate": 2438.3276886434514,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0398,
"release_spin_rate": 2438.3277,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.1774,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2669,
"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": 1.0926,
"walk_factor": 0.948,
"homer_factor": 1.036,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "594798",
"espn_id": 32796,
"player_name": "Jacob deGrom",
"team": "TEX",
"role": "pitcher",
"espn_rank": 78,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 78,
"gp_value": 26.0,
"gp_rank": 285,
"gs_value": 26.0,
"gs_rank": 37,
"qs_value": 10.0,
"qs_rank": 54,
"era_value": 3.9975,
"era_rank": null,
"w_value": 10.0,
"w_rank": 27,
"l_value": 9.0,
"l_rank": 26,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 137.1,
"ip_rank": 55,
"h_value": 118.0,
"h_rank": 78,
"er_value": 61.0,
"er_rank": 57,
"hr_value": 17.0,
"hr_rank": 63,
"bb_value": 37.0,
"bb_rank": 101,
"k_value": 167.0,
"k_rank": 16,
"k_per_9_value": 10.944175,
"k_per_9_rank": 7,
"whip_value": 1.1286,
"whip_rank": null,
"war_value": 1.89,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9706,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9706,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.036,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0926,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 86,
"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/20260905_TB@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"
}
} |
| 20260905 | 20260905_TOR@KC | away | Max Scherzer | Max Scherzer | True | 5.0 | 5.2 | 2 | 4 | 3 | -1 | 4/5 | 2/1 | 3/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.157894736842105,
"WHIP": 1.3859649122807018,
"IP": 57.0,
"games_started": null,
"games_pitched": 13,
"role_avg_IP": 4.385,
"recent_avg_IP": 5.267,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1565,
"sample_weight": 0.804,
"run_prevention_factor": 1.0133,
"strikeout_factor": 0.9605,
"walk_factor": 1.0209,
"homer_factor": 1.0145,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 10.5,
"woba": 0.336,
"xwoba": 0.316,
"barrel_percent": 9.1,
"hard_hit_percent": 34.3,
"whiff_percent": 20.1
},
"espn_rank": {
"rank": 722,
"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": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "453286",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 13,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.1,
"ER": 12.0,
"R": 12.0,
"H": 18.0,
"BB": 11.0,
"SO": 23.0,
"HR": 3.0,
"BF": 108.0,
"Pitches": 438.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.4,
"H": 3.6,
"BB": 2.2,
"SO": 4.6,
"HR": 0.6,
"BF": 21.6,
"Pitches": 87.6
},
"rates": {
"ERA": 4.1013,
"WHIP": 1.1013,
"ER_per_IP": 0.4557,
"H_per_IP": 0.68354,
"BB_per_IP": 0.41772,
"SO_per_IP": 0.87342,
"HR_per_IP": 0.11392
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.2,
"ER": 28.0,
"R": 28.0,
"H": 42.0,
"BB": 22.0,
"SO": 37.0,
"HR": 8.0,
"BF": 202.0,
"Pitches": 835.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.8,
"H": 4.2,
"BB": 2.2,
"SO": 3.7,
"HR": 0.8,
"BF": 20.2,
"Pitches": 83.5
},
"rates": {
"ERA": 5.4,
"WHIP": 1.3714,
"ER_per_IP": 0.6,
"H_per_IP": 0.9,
"BB_per_IP": 0.47143,
"SO_per_IP": 0.79286,
"HR_per_IP": 0.17143
}
},
"season": {
"games": 13,
"totals": {
"IP": 57.0,
"ER": 39.0,
"R": 39.0,
"H": 53.0,
"BB": 26.0,
"SO": 46.0,
"HR": 12.0,
"BF": 248.0,
"Pitches": 1022.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 4.0769,
"BB": 2.0,
"SO": 3.5385,
"HR": 0.9231,
"BF": 19.0769,
"Pitches": 78.6154
},
"rates": {
"ERA": 6.1579,
"WHIP": 1.386,
"ER_per_IP": 0.68421,
"H_per_IP": 0.92982,
"BB_per_IP": 0.45614,
"SO_per_IP": 0.80702,
"HR_per_IP": 0.21053
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.695,
"predicted_H": 4.285,
"predicted_BB": 2.128,
"predicted_SO": 4.324,
"predicted_HR": 0.759,
"predicted_ERA": 4.831,
"predicted_WHIP": 1.2775
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4674,
"form_weight": 0.5326,
"form_reliability": 0.7222,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.695,
"final": 3.3049,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.285,
"final": 4.1518,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.128,
"final": 2.0682,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.324,
"final": 3.2378,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.759,
"final": 0.8716,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.831,
"final": 4.831,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2775,
"final": 1.2775,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.2,
"ER": 28,
"H": 42,
"BB": 22,
"SO": 37,
"HR": 8,
"ERA": 5.4,
"WHIP": 1.3714285714285714,
"K9": 7.135714285714286,
"HR9": 1.542857142857143,
"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-30T00:00:00"
},
"recent_form_boost": 1.117524116094246,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7222,
"prior_weight": 0.2778
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "453286",
"player_name": "Max Scherzer",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"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": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 575.0,
"runs_allowed": 609.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2394,
"avg_runs_scored": 4.0493,
"avg_runs_allowed": 4.2887,
"offense_index": 0.9042,
"defense_index": 1.0442,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.3,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.0406
},
"opponent": {
"team": "KC",
"games": 142,
"wins": 63,
"losses": 79,
"win_pct": 0.4437,
"runs_scored": 608.0,
"runs_allowed": 700.0,
"run_differential": -92.0,
"run_differential_per_game": -0.6479,
"avg_runs_scored": 4.2817,
"avg_runs_allowed": 4.9296,
"offense_index": 0.9561,
"defense_index": 0.9084,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1274
},
"edges": {
"quality_edge": 0.168,
"offense_edge": -0.0958,
"opponent_offense_edge": -0.0439,
"defense_strength": 0.0442,
"opponent_defense_weakness": 0.0916,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0098,
"run_prevention": 0.9802,
"strikeout": 1.0086
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "453286",
"profile": {
"available": true,
"pitcher_id": "453286",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 201.0,
"k_percent": 18.5,
"bb_percent": 10.5,
"woba": 0.336,
"xwoba": 0.316,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 34.3,
"avg_best_speed": 77.3758,
"avg_hyper_speed": 93.4393,
"whiff_percent": 20.1,
"swing_percent": 49.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.179,
"command_and_miss": -0.545,
"regression_edge": 0.5714,
"xwoba_edge": -0.1429,
"barrel_edge": -0.4222,
"hard_hit_edge": 0.5,
"whiff_edge": -0.7286,
"bb_edge": -0.325,
"pitch_design_score": -0.1232
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "453286",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 83,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 83,
"pitch_usage": 0.0,
"release_speed": 87.67251054611137,
"release_spin_rate": 2262.3263033136295,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6725,
"release_spin_rate": 2262.3263,
"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.1232,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.88,
"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.1565,
"sample_weight": 0.804,
"run_prevention_factor": 1.0133,
"strikeout_factor": 0.9605,
"walk_factor": 1.0209,
"homer_factor": 1.0145,
"woba_minus_xwoba": 0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "453286",
"espn_id": 28976,
"player_name": "Max Scherzer",
"team": "TOR",
"role": "pitcher",
"espn_rank": 722,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 722,
"gp_value": 13.0,
"gp_rank": 479,
"gs_value": 13.0,
"gs_rank": 150,
"qs_value": 4.0,
"qs_rank": 121,
"era_value": 6.1578,
"era_rank": null,
"w_value": 2.0,
"w_rank": 306,
"l_value": 7.0,
"l_rank": 80,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 57.0,
"ip_rank": 242,
"h_value": 53.0,
"h_rank": 218,
"er_value": 39.0,
"er_rank": 147,
"hr_value": 12.0,
"hr_rank": 126,
"bb_value": 26.0,
"bb_rank": 201,
"k_value": 46.0,
"k_rank": 307,
"k_per_9_value": 7.263158,
"k_per_9_rank": 34,
"whip_value": 1.3859,
"whip_rank": null,
"war_value": -0.34,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0107,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0107,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0168,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0117,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9682,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"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."
}
],
"provenance": {
"prediction": "output/games/20260905_TOR@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"
}
} |
| 20260905 | 20260905_TOR@KC | home | Seth Lugo | Seth Lugo | True | 5.0 | 5.0 | 0 | 2 | 3 | 1 | 5/8 | 0/2 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.025974025974026,
"WHIP": 1.422077922077922,
"IP": 154.0,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.5,
"recent_avg_IP": 5.067,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5434,
"sample_weight": 1.0,
"run_prevention_factor": 1.0462,
"strikeout_factor": 0.9377,
"walk_factor": 0.964,
"homer_factor": 1.0668,
"regression_flag": "neutral",
"k_percent": 17.8,
"bb_percent": 7.4,
"woba": 0.35,
"xwoba": 0.346,
"barrel_percent": 7.6,
"hard_hit_percent": 43.0,
"whiff_percent": 18.5
},
"espn_rank": {
"rank": 731,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607625",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 23.0,
"R": 23.0,
"H": 36.0,
"BB": 4.0,
"SO": 19.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 454.0
},
"per_game": {
"IP": 5.0,
"ER": 4.6,
"R": 4.6,
"H": 7.2,
"BB": 0.8,
"SO": 3.8,
"HR": 0.6,
"BF": 22.8,
"Pitches": 90.8
},
"rates": {
"ERA": 8.1711,
"WHIP": 1.5789,
"ER_per_IP": 0.90789,
"H_per_IP": 1.42105,
"BB_per_IP": 0.15789,
"SO_per_IP": 0.75,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.1,
"ER": 35.0,
"R": 36.0,
"H": 58.0,
"BB": 17.0,
"SO": 38.0,
"HR": 4.0,
"BF": 231.0,
"Pitches": 910.0
},
"per_game": {
"IP": 5.1,
"ER": 3.5,
"R": 3.6,
"H": 5.8,
"BB": 1.7,
"SO": 3.8,
"HR": 0.4,
"BF": 23.1,
"Pitches": 91.0
},
"rates": {
"ERA": 5.9062,
"WHIP": 1.4062,
"ER_per_IP": 0.65625,
"H_per_IP": 1.0875,
"BB_per_IP": 0.31875,
"SO_per_IP": 0.7125,
"HR_per_IP": 0.075
}
},
"season": {
"games": 28,
"totals": {
"IP": 154.0,
"ER": 86.0,
"R": 94.0,
"H": 170.0,
"BB": 49.0,
"SO": 118.0,
"HR": 18.0,
"BF": 662.0,
"Pitches": 2520.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0714,
"R": 3.3571,
"H": 6.0714,
"BB": 1.75,
"SO": 4.2143,
"HR": 0.6429,
"BF": 23.6429,
"Pitches": 90.0
},
"rates": {
"ERA": 5.026,
"WHIP": 1.4221,
"ER_per_IP": 0.55844,
"H_per_IP": 1.1039,
"BB_per_IP": 0.31818,
"SO_per_IP": 0.76623,
"HR_per_IP": 0.11688
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.705,
"predicted_H": 6.247,
"predicted_BB": 1.381,
"predicted_SO": 4.009,
"predicted_HR": 0.569,
"predicted_ERA": 6.4051,
"predicted_WHIP": 1.4651
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.705,
"final": 2.9991,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 6.247,
"final": 5.7307,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.381,
"final": 0.8093,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.009,
"final": 4.8333,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.569,
"final": 0.3334,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.4051,
"final": 6.4051,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4651,
"final": 1.4651,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.1,
"ER": 35,
"H": 58,
"BB": 17,
"SO": 38,
"HR": 4,
"ERA": 5.90625,
"WHIP": 1.40625,
"K9": 6.4125,
"HR9": 0.6749999999999999,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 1.1753477768085314,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607625",
"player_name": "Seth Lugo",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 142,
"wins": 63,
"losses": 79,
"win_pct": 0.4437,
"runs_scored": 608.0,
"runs_allowed": 700.0,
"run_differential": -92.0,
"run_differential_per_game": -0.6479,
"avg_runs_scored": 4.2817,
"avg_runs_allowed": 4.9296,
"offense_index": 0.9561,
"defense_index": 0.9084,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 4.9,
"run_differential": -1.0
},
"available": true,
"quality_score": -0.1274
},
"opponent": {
"team": "TOR",
"games": 142,
"wins": 71,
"losses": 71,
"win_pct": 0.5,
"runs_scored": 575.0,
"runs_allowed": 609.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2394,
"avg_runs_scored": 4.0493,
"avg_runs_allowed": 4.2887,
"offense_index": 0.9042,
"defense_index": 1.0442,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.3,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.0406
},
"edges": {
"quality_edge": -0.168,
"offense_edge": -0.0439,
"opponent_offense_edge": -0.0958,
"defense_strength": -0.0916,
"opponent_defense_weakness": -0.0442,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9944,
"run_prevention": 1.0022,
"strikeout": 1.0026
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607625",
"profile": {
"available": true,
"pitcher_id": "607625",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 17.8,
"bb_percent": 7.4,
"woba": 0.35,
"xwoba": 0.346,
"sweet_spot_percent": 37.1,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 43.0,
"avg_best_speed": 79.4698,
"avg_hyper_speed": 94.5849,
"whiff_percent": 18.5,
"swing_percent": 46.2
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7179,
"command_and_miss": -0.515,
"regression_edge": 0.1143,
"xwoba_edge": -1.0,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.7429,
"whiff_edge": -0.9571,
"bb_edge": 0.45,
"pitch_design_score": -0.2362
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607625",
"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": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 85.65388563891052,
"release_spin_rate": 2512.4854293940252,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6539,
"release_spin_rate": 2512.4854,
"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.2362,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.6874,
"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.5434,
"sample_weight": 1.0,
"run_prevention_factor": 1.0462,
"strikeout_factor": 0.9377,
"walk_factor": 0.964,
"homer_factor": 1.0668,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607625",
"espn_id": 34873,
"player_name": "Seth Lugo",
"team": "KC",
"role": "pitcher",
"espn_rank": 731,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 731,
"gp_value": 28.0,
"gp_rank": 236,
"gs_value": 28.0,
"gs_rank": 9,
"qs_value": 14.0,
"qs_rank": 19,
"era_value": 5.0259,
"era_rank": 49.0,
"w_value": 6.0,
"w_rank": 101,
"l_value": 8.0,
"l_rank": 50,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 154.0,
"ip_rank": 28,
"h_value": 170.0,
"h_rank": 4,
"er_value": 86.0,
"er_rank": 4,
"hr_value": 18.0,
"hr_rank": 50,
"bb_value": 49.0,
"bb_rank": 38,
"k_value": 118.0,
"k_rank": 67,
"k_per_9_value": 6.896104,
"k_per_9_rank": 64,
"whip_value": 1.422,
"whip_rank": 47.0,
"war_value": -0.37,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0462,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0462,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.964,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0668,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9377,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 79,
"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/20260905_TOR@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"
}
} |
| 20260905 | 20260905_WAS@LAD | away | Cade Cavalli | Cade Cavalli | True | 5.2 | 6.0 | 1 | 4 | 2 | -2 | 4/4 | 5/0 | 6/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.124454148471616,
"WHIP": 1.1986899563318778,
"IP": 152.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.264,
"recent_avg_IP": 6.0,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1942,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0411,
"walk_factor": 0.96,
"homer_factor": 1.0185,
"regression_flag": "neutral",
"k_percent": 27.7,
"bb_percent": 7.2,
"woba": 0.3,
"xwoba": 0.303,
"barrel_percent": 7.5,
"hard_hit_percent": 41.3,
"whiff_percent": 26.7
},
"espn_rank": {
"rank": 34,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676917",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 5.0,
"R": 5.0,
"H": 16.0,
"BB": 9.0,
"SO": 44.0,
"HR": 5.0,
"BF": 114.0,
"Pitches": 450.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0,
"R": 1.0,
"H": 3.2,
"BB": 1.8,
"SO": 8.8,
"HR": 1.0,
"BF": 22.8,
"Pitches": 90.0
},
"rates": {
"ERA": 1.5,
"WHIP": 0.8333,
"ER_per_IP": 0.16667,
"H_per_IP": 0.53333,
"BB_per_IP": 0.3,
"SO_per_IP": 1.46667,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 13.0,
"R": 15.0,
"H": 40.0,
"BB": 15.0,
"SO": 72.0,
"HR": 9.0,
"BF": 228.0,
"Pitches": 908.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.5,
"H": 4.0,
"BB": 1.5,
"SO": 7.2,
"HR": 0.9,
"BF": 22.8,
"Pitches": 90.8
},
"rates": {
"ERA": 1.95,
"WHIP": 0.9167,
"ER_per_IP": 0.21667,
"H_per_IP": 0.66667,
"BB_per_IP": 0.25,
"SO_per_IP": 1.2,
"HR_per_IP": 0.15
}
},
"season": {
"games": 29,
"totals": {
"IP": 152.2,
"ER": 53.0,
"R": 64.0,
"H": 137.0,
"BB": 46.0,
"SO": 177.0,
"HR": 17.0,
"BF": 640.0,
"Pitches": 2505.0
},
"per_game": {
"IP": 5.1,
"ER": 1.8276,
"R": 2.2069,
"H": 4.7241,
"BB": 1.5862,
"SO": 6.1034,
"HR": 0.5862,
"BF": 22.069,
"Pitches": 86.3793
},
"rates": {
"ERA": 3.1245,
"WHIP": 1.1987,
"ER_per_IP": 0.34716,
"H_per_IP": 0.89738,
"BB_per_IP": 0.30131,
"SO_per_IP": 1.15939,
"HR_per_IP": 0.11135
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.524,
"predicted_H": 4.083,
"predicted_BB": 1.727,
"predicted_SO": 7.336,
"predicted_HR": 0.871,
"predicted_ERA": 2.3493,
"predicted_WHIP": 0.9953
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.524,
"final": 2.1323,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.083,
"final": 4.0488,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.727,
"final": 3.076,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.336,
"final": 5.9611,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.871,
"final": 0.9242,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3493,
"final": 2.3493,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9953,
"final": 0.9953,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 60.0,
"ER": 13,
"H": 40,
"BB": 15,
"SO": 72,
"HR": 9,
"ERA": 1.95,
"WHIP": 0.9166666666666666,
"K9": 10.8,
"HR9": 1.35,
"games_pitched": 10,
"quality_starts": 9,
"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-29T00:00:00"
},
"recent_form_boost": 0.7180300684751982,
"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": 5.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 5,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676917",
"player_name": "Cade Cavalli",
"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": 5.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": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 6.0,
"delta": -1.0,
"percent_delta": -0.1429,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": "WAS",
"games": 143,
"wins": 67,
"losses": 76,
"win_pct": 0.4685,
"runs_scored": 738.0,
"runs_allowed": 726.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0839,
"avg_runs_scored": 5.1608,
"avg_runs_allowed": 5.0769,
"offense_index": 1.1511,
"defense_index": 0.8831,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0165
},
"opponent": {
"team": "LAD",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 692.0,
"runs_allowed": 543.0,
"run_differential": 149.0,
"run_differential_per_game": 1.0567,
"avg_runs_scored": 4.9078,
"avg_runs_allowed": 3.8511,
"offense_index": 1.0947,
"defense_index": 1.1642,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.176
},
"edges": {
"quality_edge": -0.1925,
"offense_edge": 0.1511,
"opponent_offense_edge": 0.0947,
"defense_strength": -0.1169,
"opponent_defense_weakness": -0.1642,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.985,
"run_prevention": 1.0365,
"strikeout": 0.9866
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676917",
"profile": {
"available": true,
"pitcher_id": "676917",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 596.0,
"k_percent": 27.7,
"bb_percent": 7.2,
"woba": 0.3,
"xwoba": 0.303,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 41.3,
"avg_best_speed": 78.2074,
"avg_hyper_speed": 94.3678,
"whiff_percent": 26.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0968,
"command_and_miss": 0.5414,
"regression_edge": -0.0857,
"xwoba_edge": 0.2286,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.5,
"whiff_edge": 0.2143,
"bb_edge": 0.5,
"pitch_design_score": 0.0977
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676917",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 91.61672486815726,
"release_spin_rate": 2232.265396590468,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6167,
"release_spin_rate": 2232.2654,
"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.0977,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6977,
"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.1942,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0411,
"walk_factor": 0.96,
"homer_factor": 1.0185,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676917",
"espn_id": 4308037,
"player_name": "Cade Cavalli",
"team": "WSH",
"role": "pitcher",
"espn_rank": 34,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 34,
"gp_value": 29.0,
"gp_rank": 218,
"gs_value": 29.0,
"gs_rank": 2,
"qs_value": 16.0,
"qs_rank": 11,
"era_value": 3.1244,
"era_rank": 16.0,
"w_value": 12.0,
"w_rank": 15,
"l_value": 5.0,
"l_rank": 131,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 152.2,
"ip_rank": 29,
"h_value": 137.0,
"h_rank": 35,
"er_value": 53.0,
"er_rank": 86,
"hr_value": 17.0,
"hr_rank": 63,
"bb_value": 46.0,
"bb_rank": 53,
"k_value": 177.0,
"k_rank": 12,
"k_per_9_value": 10.434498,
"k_per_9_rank": 11,
"whip_value": 1.1986,
"whip_rank": 29.0,
"war_value": 2.97,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9835,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9835,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.96,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0185,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0411,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 115,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"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/20260905_WAS@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"
}
} |
| 20260905 | 20260905_WAS@LAD | home | Tyler Glasnow | Tyler Glasnow | True | 5.2 | 6.0 | 1 | 3 | 4 | 1 | 2/6 | 4/3 | 9/8 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 2.7870967741935484,
"WHIP": 0.8129032258064517,
"IP": 51.2,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 5.741,
"recent_avg_IP": 5.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4884,
"sample_weight": 0.588,
"run_prevention_factor": 0.9585,
"strikeout_factor": 1.0487,
"walk_factor": 0.9777,
"homer_factor": 0.9723,
"regression_flag": "neutral",
"k_percent": 32.3,
"bb_percent": 7.3,
"woba": 0.222,
"xwoba": 0.243,
"barrel_percent": 7.8,
"hard_hit_percent": 37.9,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "607192",
"report_date": "20260905",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 7.0,
"R": 7.0,
"H": 13.0,
"BB": 8.0,
"SO": 33.0,
"HR": 3.0,
"BF": 97.0,
"Pitches": 390.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 2.6,
"BB": 1.6,
"SO": 6.6,
"HR": 0.6,
"BF": 19.4,
"Pitches": 78.0
},
"rates": {
"ERA": 2.3625,
"WHIP": 0.7875,
"ER_per_IP": 0.2625,
"H_per_IP": 0.4875,
"BB_per_IP": 0.3,
"SO_per_IP": 1.2375,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 51.2,
"ER": 16.0,
"R": 16.0,
"H": 28.0,
"BB": 14.0,
"SO": 62.0,
"HR": 5.0,
"BF": 192.0,
"Pitches": 773.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7778,
"R": 1.7778,
"H": 3.1111,
"BB": 1.5556,
"SO": 6.8889,
"HR": 0.5556,
"BF": 21.3333,
"Pitches": 85.8889
},
"rates": {
"ERA": 2.7871,
"WHIP": 0.8129,
"ER_per_IP": 0.30968,
"H_per_IP": 0.54194,
"BB_per_IP": 0.27097,
"SO_per_IP": 1.2,
"HR_per_IP": 0.09677
}
},
"season": {
"games": 9,
"totals": {
"IP": 51.2,
"ER": 16.0,
"R": 16.0,
"H": 28.0,
"BB": 14.0,
"SO": 62.0,
"HR": 5.0,
"BF": 192.0,
"Pitches": 773.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7778,
"R": 1.7778,
"H": 3.1111,
"BB": 1.5556,
"SO": 6.8889,
"HR": 0.5556,
"BF": 21.3333,
"Pitches": 85.8889
},
"rates": {
"ERA": 2.7871,
"WHIP": 0.8129,
"ER_per_IP": 0.30968,
"H_per_IP": 0.54194,
"BB_per_IP": 0.27097,
"SO_per_IP": 1.2,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.982,
"predicted_H": 3.727,
"predicted_BB": 1.762,
"predicted_SO": 6.205,
"predicted_HR": 0.667,
"predicted_ERA": 3.2223,
"predicted_WHIP": 0.9917
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.982,
"final": 2.4919,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.727,
"final": 2.862,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.762,
"final": 2.883,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 6.205,
"final": 7.6049,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.667,
"final": 0.3329,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2223,
"final": 3.2223,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9917,
"final": 0.9917,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.2,
"ER": 16,
"H": 28,
"BB": 14,
"SO": 62,
"HR": 5,
"ERA": 2.787096774193548,
"WHIP": 0.8129032258064516,
"K9": 10.799999999999999,
"HR9": 0.8709677419354838,
"games_pitched": 9,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-30T00:00:00"
},
"recent_form_boost": 0.809609369550467,
"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": 2.0,
"predicted_BB": 4.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 4,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607192",
"player_name": "Tyler Glasnow",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 9.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": 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": 9.0,
"after": 9.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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 9.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": 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": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": 9.0,
"after": 9.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": "LAD",
"games": 141,
"wins": 84,
"losses": 57,
"win_pct": 0.5957,
"runs_scored": 692.0,
"runs_allowed": 543.0,
"run_differential": 149.0,
"run_differential_per_game": 1.0567,
"avg_runs_scored": 4.9078,
"avg_runs_allowed": 3.8511,
"offense_index": 1.0947,
"defense_index": 1.1642,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 4.1,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.176
},
"opponent": {
"team": "WAS",
"games": 143,
"wins": 67,
"losses": 76,
"win_pct": 0.4685,
"runs_scored": 738.0,
"runs_allowed": 726.0,
"run_differential": 12.0,
"run_differential_per_game": 0.0839,
"avg_runs_scored": 5.1608,
"avg_runs_allowed": 5.0769,
"offense_index": 1.1511,
"defense_index": 0.8831,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.1,
"run_differential": -8.0
},
"available": true,
"quality_score": -0.0165
},
"edges": {
"quality_edge": 0.1925,
"offense_edge": 0.0947,
"opponent_offense_edge": 0.1511,
"defense_strength": 0.1642,
"opponent_defense_weakness": 0.1169,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9981,
"strikeout": 0.9937
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607192",
"profile": {
"available": true,
"pitcher_id": "607192",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 147.0,
"k_percent": 32.3,
"bb_percent": 7.3,
"woba": 0.222,
"xwoba": 0.243,
"sweet_spot_percent": 29.3,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 37.9,
"avg_best_speed": 80.9757,
"avg_hyper_speed": 93.71,
"whiff_percent": 29.4,
"swing_percent": 43.6
},
"league_medians": {
"pa": 118.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.6443,
"avg_hyper_speed": 93.9042,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.1369,
"command_and_miss": 0.9671,
"regression_edge": -0.6,
"xwoba_edge": 1.9429,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.0143,
"whiff_edge": 0.6,
"bb_edge": 0.475,
"pitch_design_score": 0.0322
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607192",
"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": 90.4479219166441,
"release_spin_rate": 2625.6509472387484,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.4479219166441,
"release_spin_rate": 2625.6509472387484,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4479,
"release_spin_rate": 2625.6509,
"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.0322,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2302,
"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.4884,
"sample_weight": 0.588,
"run_prevention_factor": 0.9585,
"strikeout_factor": 1.0487,
"walk_factor": 0.9777,
"homer_factor": 0.9723,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607192",
"espn_id": 33190,
"player_name": "Tyler Glasnow",
"team": "LAD",
"role": "pitcher",
"espn_rank": 108,
"espn_total_ranked": 854,
"metrics": {
"espn_rank": 108,
"gp_value": 9.0,
"gp_rank": 535,
"gs_value": 9.0,
"gs_rank": 176,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 2.787,
"era_rank": null,
"w_value": 4.0,
"w_rank": 181,
"l_value": 0.0,
"l_rank": 570,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 51.2,
"ip_rank": 284,
"h_value": 28.0,
"h_rank": 422,
"er_value": 16.0,
"er_rank": 385,
"hr_value": 5.0,
"hr_rank": 306,
"bb_value": 14.0,
"bb_rank": 390,
"k_value": 62.0,
"k_rank": 209,
"k_per_9_value": 10.8,
"k_per_9_rank": 19,
"whip_value": 0.8129,
"whip_rank": null,
"war_value": 1.64,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9756,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9756,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9869,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9837,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0286,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 104,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260905_WAS@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"
}
} |