| 20260915 | 20260915_ATL@CHC | away | Martín Pérez | Martín Pérez | True | 5.2 | 6.0 | 1 | 3 | 2 | -1 | 7/5 | 1/4 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.075949367088608,
"WHIP": 1.2455696202531648,
"IP": 131.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.097,
"recent_avg_IP": 5.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2317,
"sample_weight": 1.0,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9566,
"walk_factor": 1.02,
"homer_factor": 0.9713,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.9,
"bb_percent": 10.2,
"woba": 0.297,
"xwoba": 0.328,
"barrel_percent": 5.1,
"hard_hit_percent": 36.7,
"whiff_percent": 21.5
},
"espn_rank": {
"rank": 41,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 131.2,
"season_ERA": 3.076,
"season_WHIP": 1.246,
"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": 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": "527048",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 10.0,
"R": 13.0,
"H": 29.0,
"BB": 13.0,
"SO": 18.0,
"HR": 2.0,
"BF": 117.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.6,
"H": 5.8,
"BB": 2.6,
"SO": 3.6,
"HR": 0.4,
"BF": 23.4,
"Pitches": 87.2
},
"rates": {
"ERA": 3.5526,
"WHIP": 1.6579,
"ER_per_IP": 0.39474,
"H_per_IP": 1.14474,
"BB_per_IP": 0.51316,
"SO_per_IP": 0.71053,
"HR_per_IP": 0.07895
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 13.0,
"R": 16.0,
"H": 43.0,
"BB": 24.0,
"SO": 36.0,
"HR": 3.0,
"BF": 214.0,
"Pitches": 793.0
},
"per_game": {
"IP": 5.0,
"ER": 1.3,
"R": 1.6,
"H": 4.3,
"BB": 2.4,
"SO": 3.6,
"HR": 0.3,
"BF": 21.4,
"Pitches": 79.3
},
"rates": {
"ERA": 2.3245,
"WHIP": 1.3311,
"ER_per_IP": 0.25828,
"H_per_IP": 0.8543,
"BB_per_IP": 0.47682,
"SO_per_IP": 0.71523,
"HR_per_IP": 0.0596
}
},
"season": {
"games": 28,
"totals": {
"IP": 131.2,
"ER": 45.0,
"R": 49.0,
"H": 108.0,
"BB": 56.0,
"SO": 98.0,
"HR": 13.0,
"BF": 547.0,
"Pitches": 2075.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6071,
"R": 1.75,
"H": 3.8571,
"BB": 2.0,
"SO": 3.5,
"HR": 0.4643,
"BF": 19.5357,
"Pitches": 74.1071
},
"rates": {
"ERA": 3.0759,
"WHIP": 1.2456,
"ER_per_IP": 0.34177,
"H_per_IP": 0.82025,
"BB_per_IP": 0.42532,
"SO_per_IP": 0.7443,
"HR_per_IP": 0.09873
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.828,
"predicted_H": 4.933,
"predicted_BB": 2.353,
"predicted_SO": 3.795,
"predicted_HR": 0.438,
"predicted_ERA": 3.2611,
"predicted_WHIP": 1.4443
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.828,
"final": 2.7272,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.933,
"final": 5.7888,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.353,
"final": 1.7928,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 3.795,
"final": 2.6378,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.438,
"final": 0.2567,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2611,
"final": 3.2611,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4443,
"final": 1.4443,
"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": 13,
"H": 43,
"BB": 24,
"SO": 36,
"HR": 3,
"ERA": 2.3245033112582782,
"WHIP": 1.3311258278145695,
"K9": 6.437086092715232,
"HR9": 0.5364238410596026,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-10T00:00:00"
},
"recent_form_boost": 0.7601499768562194,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 1.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": "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": 7,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"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": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.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": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 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": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.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": 1.0,
"after": 4.0,
"delta": 3.0,
"percent_delta": 3.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
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 151,
"wins": 88,
"losses": 63,
"win_pct": 0.5828,
"runs_scored": 696.0,
"runs_allowed": 584.0,
"run_differential": 112.0,
"run_differential_per_game": 0.7417,
"avg_runs_scored": 4.6093,
"avg_runs_allowed": 3.8675,
"offense_index": 1.0269,
"defense_index": 1.1605,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.7,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.1263
},
"opponent": {
"team": "CHC",
"games": 151,
"wins": 84,
"losses": 67,
"win_pct": 0.5563,
"runs_scored": 806.0,
"runs_allowed": 664.0,
"run_differential": 142.0,
"run_differential_per_game": 0.9404,
"avg_runs_scored": 5.3377,
"avg_runs_allowed": 4.3974,
"offense_index": 1.1892,
"defense_index": 1.0207,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1631
},
"edges": {
"quality_edge": -0.0368,
"offense_edge": 0.0269,
"opponent_offense_edge": 0.1892,
"defense_strength": 0.1605,
"opponent_defense_weakness": -0.0207,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9958,
"run_prevention": 1.0161,
"strikeout": 0.9838
},
"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": 518.0,
"k_percent": 17.9,
"bb_percent": 10.2,
"woba": 0.297,
"xwoba": 0.328,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 36.7,
"avg_best_speed": 76.2102,
"avg_hyper_speed": 93.922,
"whiff_percent": 21.5,
"swing_percent": 43.3
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0084,
"command_and_miss": -0.4886,
"regression_edge": -0.8857,
"xwoba_edge": -0.4571,
"barrel_edge": 0.4444,
"hard_hit_edge": 0.1714,
"whiff_edge": -0.5,
"bb_edge": -0.25,
"pitch_design_score": -0.2606
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "527048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 85.19452514612567,
"release_spin_rate": 1969.9345721795787,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 85.19452514612567,
"release_spin_rate": 1969.9345721795787,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1945,
"release_spin_rate": 1969.9346,
"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.2606,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8617,
"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.2317,
"sample_weight": 1.0,
"run_prevention_factor": 1.0197,
"strikeout_factor": 0.9566,
"walk_factor": 1.02,
"homer_factor": 0.9713,
"woba_minus_xwoba": -0.031,
"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": 41,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 41,
"gp_value": 28.0,
"gp_rank": "278",
"gs_value": 24.0,
"gs_rank": "75",
"qs_value": 5.0,
"qs_rank": "110",
"era_value": 3.0759,
"era_rank": null,
"w_value": 8.0,
"w_rank": "67",
"l_value": 9.0,
"l_rank": "32",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 131.2,
"ip_rank": "83",
"h_value": 108.0,
"h_rank": "109",
"er_value": 45.0,
"er_rank": "133",
"hr_value": 13.0,
"hr_rank": "127",
"bb_value": 56.0,
"bb_rank": "24",
"k_value": 98.0,
"k_rank": "113",
"k_per_9_value": 6.698734,
"k_per_9_rank": 36.0,
"whip_value": 1.2455,
"whip_rank": null,
"war_value": 2.84,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0197,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0197,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9713,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9566,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260915_ATL@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_ATL@CHC | home | Kevin Gausman | Kevin Gausman | True | 5.1 | 5.2 | 1 | 3 | 2 | -1 | 6/5 | 1/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.599198396793587,
"WHIP": 1.2865731462925851,
"IP": 166.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.544,
"recent_avg_IP": 5.467,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1277,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 1.0263,
"walk_factor": 0.946,
"homer_factor": 1.0108,
"regression_flag": "neutral",
"k_percent": 24.2,
"bb_percent": 6.5,
"woba": 0.317,
"xwoba": 0.309,
"barrel_percent": 7.4,
"hard_hit_percent": 39.3,
"whiff_percent": 27.4
},
"espn_rank": {
"rank": 195,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592332",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 15.0,
"R": 16.0,
"H": 29.0,
"BB": 8.0,
"SO": 33.0,
"HR": 7.0,
"BF": 118.0,
"Pitches": 479.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0,
"R": 3.2,
"H": 5.8,
"BB": 1.6,
"SO": 6.6,
"HR": 1.4,
"BF": 23.6,
"Pitches": 95.8
},
"rates": {
"ERA": 4.939,
"WHIP": 1.3537,
"ER_per_IP": 0.54878,
"H_per_IP": 1.06098,
"BB_per_IP": 0.29268,
"SO_per_IP": 1.20732,
"HR_per_IP": 0.2561
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 31.0,
"R": 33.0,
"H": 63.0,
"BB": 14.0,
"SO": 55.0,
"HR": 9.0,
"BF": 236.0,
"Pitches": 950.0
},
"per_game": {
"IP": 5.1,
"ER": 3.1,
"R": 3.3,
"H": 6.3,
"BB": 1.4,
"SO": 5.5,
"HR": 0.9,
"BF": 23.6,
"Pitches": 95.0
},
"rates": {
"ERA": 5.1667,
"WHIP": 1.4259,
"ER_per_IP": 0.57407,
"H_per_IP": 1.16667,
"BB_per_IP": 0.25926,
"SO_per_IP": 1.01852,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 30,
"totals": {
"IP": 166.1,
"ER": 85.0,
"R": 92.0,
"H": 168.0,
"BB": 46.0,
"SO": 171.0,
"HR": 24.0,
"BF": 706.0,
"Pitches": 2808.0
},
"per_game": {
"IP": 5.2,
"ER": 2.8333,
"R": 3.0667,
"H": 5.6,
"BB": 1.5333,
"SO": 5.7,
"HR": 0.8,
"BF": 23.5333,
"Pitches": 93.6
},
"rates": {
"ERA": 4.5992,
"WHIP": 1.2866,
"ER_per_IP": 0.51102,
"H_per_IP": 1.01002,
"BB_per_IP": 0.27655,
"SO_per_IP": 1.02806,
"HR_per_IP": 0.14429
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.933,
"predicted_H": 5.778,
"predicted_BB": 1.571,
"predicted_SO": 5.831,
"predicted_HR": 1.049,
"predicted_ERA": 4.8963,
"predicted_WHIP": 1.3634
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.933,
"final": 2.9605,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.778,
"final": 5.8691,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.571,
"final": 1.3367,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.831,
"final": 5.9004,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.049,
"final": 1.4393,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8963,
"final": 4.8963,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3634,
"final": 1.3634,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.0,
"ER": 31,
"H": 63,
"BB": 14,
"SO": 55,
"HR": 9,
"ERA": 5.166666666666666,
"WHIP": 1.4259259259259258,
"K9": 9.166666666666666,
"HR9": 1.4999999999999998,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 1.082263356792447,
"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": 6.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592332",
"player_name": "Kevin Gausman",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "CHC",
"games": 151,
"wins": 84,
"losses": 67,
"win_pct": 0.5563,
"runs_scored": 806.0,
"runs_allowed": 664.0,
"run_differential": 142.0,
"run_differential_per_game": 0.9404,
"avg_runs_scored": 5.3377,
"avg_runs_allowed": 4.3974,
"offense_index": 1.1892,
"defense_index": 1.0207,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.4,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1631
},
"opponent": {
"team": "ATL",
"games": 151,
"wins": 88,
"losses": 63,
"win_pct": 0.5828,
"runs_scored": 696.0,
"runs_allowed": 584.0,
"run_differential": 112.0,
"run_differential_per_game": 0.7417,
"avg_runs_scored": 4.6093,
"avg_runs_allowed": 3.8675,
"offense_index": 1.0269,
"defense_index": 1.1605,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 4.7,
"run_differential": -9.0
},
"available": true,
"quality_score": 0.1263
},
"edges": {
"quality_edge": 0.0368,
"offense_edge": 0.1892,
"opponent_offense_edge": 0.0269,
"defense_strength": 0.0207,
"opponent_defense_weakness": -0.1605,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.001,
"run_prevention": 1.0004,
"strikeout": 0.999
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592332",
"profile": {
"available": true,
"pitcher_id": "592332",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 675.0,
"k_percent": 24.2,
"bb_percent": 6.5,
"woba": 0.317,
"xwoba": 0.309,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 7.4,
"hard_hit_percent": 39.3,
"avg_best_speed": 77.04,
"avg_hyper_speed": 94.4155,
"whiff_percent": 27.4,
"swing_percent": 49.7
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0093,
"command_and_miss": 0.3964,
"regression_edge": 0.2286,
"xwoba_edge": 0.0857,
"barrel_edge": -0.0667,
"hard_hit_edge": -0.2,
"whiff_edge": 0.3429,
"bb_edge": 0.675,
"pitch_design_score": -0.0423
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592332",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.09326449255059,
"release_spin_rate": 2003.466555867779,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 89.09326449255059,
"release_spin_rate": 2003.466555867779,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0933,
"release_spin_rate": 2003.4666,
"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.0423,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3022,
"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.1277,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 1.0263,
"walk_factor": 0.946,
"homer_factor": 1.0108,
"woba_minus_xwoba": 0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "592332",
"espn_id": 32667,
"player_name": "Kevin Gausman",
"team": "CHC",
"role": "pitcher",
"espn_rank": 195,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 195,
"gp_value": 30.0,
"gp_rank": "225",
"gs_value": 30.0,
"gs_rank": "4",
"qs_value": 14.0,
"qs_rank": "25",
"era_value": 4.5991,
"era_rank": 43.0,
"w_value": 9.0,
"w_rank": "44",
"l_value": 12.0,
"l_rank": "9",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 166.1,
"ip_rank": "16",
"h_value": 168.0,
"h_rank": "7",
"er_value": 85.0,
"er_rank": "7",
"hr_value": 24.0,
"hr_rank": "15",
"bb_value": 46.0,
"bb_rank": "59",
"k_value": 171.0,
"k_rank": "20",
"k_per_9_value": 9.252505,
"k_per_9_rank": 33.0,
"whip_value": 1.2865,
"whip_rank": 38.0,
"war_value": 0.9,
"war_rank": 46.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9891,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9891,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0108,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0263,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 23,
"Pitches": 101,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260915_ATL@CHC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_BAL@NYM | away | Shane Baz | Shane Baz | True | 6.0 | 4.0 | -6 | 4 | 3 | -1 | 2/7 | 3/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.047337278106509,
"WHIP": 1.331360946745562,
"IP": 169.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.828,
"recent_avg_IP": 5.933,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.101,
"sample_weight": 1.0,
"run_prevention_factor": 1.0086,
"strikeout_factor": 0.976,
"walk_factor": 0.976,
"homer_factor": 1.0149,
"regression_flag": "neutral",
"k_percent": 20.8,
"bb_percent": 8.0,
"woba": 0.315,
"xwoba": 0.313,
"barrel_percent": 6.7,
"hard_hit_percent": 41.6,
"whiff_percent": 22.0
},
"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.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": "669358",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 14.0,
"R": 14.0,
"H": 24.0,
"BB": 11.0,
"SO": 28.0,
"HR": 4.0,
"BF": 123.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.8,
"H": 4.8,
"BB": 2.2,
"SO": 5.6,
"HR": 0.8,
"BF": 24.6,
"Pitches": 95.8
},
"rates": {
"ERA": 4.2472,
"WHIP": 1.1798,
"ER_per_IP": 0.47191,
"H_per_IP": 0.80899,
"BB_per_IP": 0.37079,
"SO_per_IP": 0.94382,
"HR_per_IP": 0.13483
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 24.0,
"R": 28.0,
"H": 54.0,
"BB": 16.0,
"SO": 51.0,
"HR": 5.0,
"BF": 239.0,
"Pitches": 903.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.8,
"H": 5.4,
"BB": 1.6,
"SO": 5.1,
"HR": 0.5,
"BF": 23.9,
"Pitches": 90.3
},
"rates": {
"ERA": 3.7674,
"WHIP": 1.2209,
"ER_per_IP": 0.4186,
"H_per_IP": 0.94186,
"BB_per_IP": 0.27907,
"SO_per_IP": 0.88953,
"HR_per_IP": 0.08721
}
},
"season": {
"games": 29,
"totals": {
"IP": 169.0,
"ER": 76.0,
"R": 86.0,
"H": 167.0,
"BB": 58.0,
"SO": 150.0,
"HR": 14.0,
"BF": 721.0,
"Pitches": 2751.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6207,
"R": 2.9655,
"H": 5.7586,
"BB": 2.0,
"SO": 5.1724,
"HR": 0.4828,
"BF": 24.8621,
"Pitches": 94.8621
},
"rates": {
"ERA": 4.0473,
"WHIP": 1.3314,
"ER_per_IP": 0.4497,
"H_per_IP": 0.98817,
"BB_per_IP": 0.3432,
"SO_per_IP": 0.88757,
"HR_per_IP": 0.08284
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.673,
"predicted_H": 5.282,
"predicted_BB": 1.982,
"predicted_SO": 5.361,
"predicted_HR": 0.664,
"predicted_ERA": 4.1173,
"predicted_WHIP": 1.2431
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.673,
"final": 3.2199,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.282,
"final": 3.9293,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.982,
"final": 2.4016,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.361,
"final": 5.2122,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.664,
"final": 0.8025,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1173,
"final": 4.1173,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2431,
"final": 1.2431,
"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.1,
"ER": 24,
"H": 54,
"BB": 16,
"SO": 51,
"HR": 5,
"ERA": 3.7674418604651163,
"WHIP": 1.2209302325581395,
"K9": 8.005813953488373,
"HR9": 0.7848837209302325,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.9197256737605779,
"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": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 5.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669358",
"player_name": "Shane Baz",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 4.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": 4.0,
"after": 4.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 151,
"wins": 73,
"losses": 78,
"win_pct": 0.4834,
"runs_scored": 674.0,
"runs_allowed": 708.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2252,
"avg_runs_scored": 4.4636,
"avg_runs_allowed": 4.6887,
"offense_index": 0.9938,
"defense_index": 0.9579,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0767
},
"opponent": {
"team": "NYM",
"games": 150,
"wins": 69,
"losses": 81,
"win_pct": 0.46,
"runs_scored": 644.0,
"runs_allowed": 679.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2333,
"avg_runs_scored": 4.2933,
"avg_runs_allowed": 4.5267,
"offense_index": 0.9559,
"defense_index": 0.9922,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.7,
"avg_runs_allowed": 5.2,
"run_differential": 15.0
},
"available": true,
"quality_score": -0.0276
},
"edges": {
"quality_edge": -0.0491,
"offense_edge": -0.0062,
"opponent_offense_edge": -0.0441,
"defense_strength": -0.0421,
"opponent_defense_weakness": 0.0078,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9985,
"run_prevention": 0.9996,
"strikeout": 1.0021
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669358",
"profile": {
"available": true,
"pitcher_id": "669358",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 668.0,
"k_percent": 20.8,
"bb_percent": 8.0,
"woba": 0.315,
"xwoba": 0.313,
"sweet_spot_percent": 35.5,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 41.6,
"avg_best_speed": 79.9821,
"avg_hyper_speed": 94.393,
"whiff_percent": 22.0,
"swing_percent": 48.2
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1199,
"command_and_miss": -0.1671,
"regression_edge": 0.0571,
"xwoba_edge": -0.0286,
"barrel_edge": 0.0889,
"hard_hit_edge": -0.5286,
"whiff_edge": -0.4286,
"bb_edge": 0.3,
"pitch_design_score": 0.0486
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669358",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.71620637222767,
"release_spin_rate": 2406.6446445810634,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 90.71620637222767,
"release_spin_rate": 2406.6446445810634,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7162,
"release_spin_rate": 2406.6446,
"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.0486,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.347,
"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.101,
"sample_weight": 1.0,
"run_prevention_factor": 1.0086,
"strikeout_factor": 0.976,
"walk_factor": 0.976,
"homer_factor": 1.0149,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669358",
"espn_id": 39639,
"player_name": "Shane Baz",
"team": "BAL",
"role": "pitcher",
"espn_rank": 108,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 108,
"gp_value": 29.0,
"gp_rank": "244",
"gs_value": 29.0,
"gs_rank": "14",
"qs_value": 12.0,
"qs_rank": "37",
"era_value": 4.0473,
"era_rank": 36.0,
"w_value": 6.0,
"w_rank": "109",
"l_value": 15.0,
"l_rank": "1",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 169.0,
"ip_rank": "12",
"h_value": 167.0,
"h_rank": "8",
"er_value": 76.0,
"er_rank": "20",
"hr_value": 14.0,
"hr_rank": "109",
"bb_value": 58.0,
"bb_rank": "19",
"k_value": 150.0,
"k_rank": "31",
"k_per_9_value": 7.9881654,
"k_per_9_rank": 69.0,
"whip_value": 1.3313,
"whip_rank": 39.0,
"war_value": 1.68,
"war_rank": 38.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0086,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0086,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0149,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.976,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260915_BAL@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"
}
} |
| 20260915 | 20260915_BAL@NYM | home | Sean Manaea | Sean Manaea | True | 5.2 | 5.1 | -1 | 1 | 2 | 1 | 4/4 | 1/0 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.7924999999999995,
"WHIP": 1.3424999999999998,
"IP": 133.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 5.646,
"recent_avg_IP": 5.733,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.387,
"sample_weight": 1.0,
"run_prevention_factor": 1.0329,
"strikeout_factor": 0.9806,
"walk_factor": 0.956,
"homer_factor": 1.1133,
"regression_flag": "neutral",
"k_percent": 21.6,
"bb_percent": 7.0,
"woba": 0.35,
"xwoba": 0.34,
"barrel_percent": 11.0,
"hard_hit_percent": 41.4,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 584,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "640455",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 23.0,
"R": 23.0,
"H": 35.0,
"BB": 6.0,
"SO": 20.0,
"HR": 7.0,
"BF": 128.0,
"Pitches": 428.0
},
"per_game": {
"IP": 5.2,
"ER": 4.6,
"R": 4.6,
"H": 7.0,
"BB": 1.2,
"SO": 4.0,
"HR": 1.4,
"BF": 25.6,
"Pitches": 85.6
},
"rates": {
"ERA": 7.2209,
"WHIP": 1.4302,
"ER_per_IP": 0.80233,
"H_per_IP": 1.22093,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.69767,
"HR_per_IP": 0.24419
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 33.0,
"R": 33.0,
"H": 63.0,
"BB": 17.0,
"SO": 52.0,
"HR": 11.0,
"BF": 253.0,
"Pitches": 891.0
},
"per_game": {
"IP": 6.0,
"ER": 3.3,
"R": 3.3,
"H": 6.3,
"BB": 1.7,
"SO": 5.2,
"HR": 1.1,
"BF": 25.3,
"Pitches": 89.1
},
"rates": {
"ERA": 5.0914,
"WHIP": 1.3714,
"ER_per_IP": 0.56571,
"H_per_IP": 1.08,
"BB_per_IP": 0.29143,
"SO_per_IP": 0.89143,
"HR_per_IP": 0.18857
}
},
"season": {
"games": 30,
"totals": {
"IP": 133.1,
"ER": 71.0,
"R": 78.0,
"H": 138.0,
"BB": 41.0,
"SO": 126.0,
"HR": 21.0,
"BF": 582.0,
"Pitches": 2227.0
},
"per_game": {
"IP": 4.1,
"ER": 2.3667,
"R": 2.6,
"H": 4.6,
"BB": 1.3667,
"SO": 4.2,
"HR": 0.7,
"BF": 19.4,
"Pitches": 74.2333
},
"rates": {
"ERA": 4.7925,
"WHIP": 1.3425,
"ER_per_IP": 0.5325,
"H_per_IP": 1.035,
"BB_per_IP": 0.3075,
"SO_per_IP": 0.945,
"HR_per_IP": 0.1575
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.561,
"predicted_H": 6.158,
"predicted_BB": 1.519,
"predicted_SO": 4.612,
"predicted_HR": 1.101,
"predicted_ERA": 5.787,
"predicted_WHIP": 1.3862
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.561,
"final": 2.51,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 6.158,
"final": 5.2724,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.519,
"final": 1.306,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.612,
"final": 4.7712,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 1.101,
"final": 1.4699,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.787,
"final": 5.787,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3862,
"final": 1.3862,
"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.1,
"ER": 33,
"H": 63,
"BB": 17,
"SO": 52,
"HR": 11,
"ERA": 5.091428571428572,
"WHIP": 1.3714285714285714,
"K9": 8.022857142857143,
"HR9": 1.697142857142857,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.0724366372157275,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "640455",
"player_name": "Sean Manaea",
"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": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 150,
"wins": 69,
"losses": 81,
"win_pct": 0.46,
"runs_scored": 644.0,
"runs_allowed": 679.0,
"run_differential": -35.0,
"run_differential_per_game": -0.2333,
"avg_runs_scored": 4.2933,
"avg_runs_allowed": 4.5267,
"offense_index": 0.9559,
"defense_index": 0.9922,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.7,
"avg_runs_allowed": 5.2,
"run_differential": 15.0
},
"available": true,
"quality_score": -0.0276
},
"opponent": {
"team": "BAL",
"games": 151,
"wins": 73,
"losses": 78,
"win_pct": 0.4834,
"runs_scored": 674.0,
"runs_allowed": 708.0,
"run_differential": -34.0,
"run_differential_per_game": -0.2252,
"avg_runs_scored": 4.4636,
"avg_runs_allowed": 4.6887,
"offense_index": 0.9938,
"defense_index": 0.9579,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.4,
"avg_runs_allowed": 4.7,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.0767
},
"edges": {
"quality_edge": 0.0491,
"offense_edge": -0.0441,
"opponent_offense_edge": -0.0062,
"defense_strength": -0.0078,
"opponent_defense_weakness": 0.0421,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9973,
"strikeout": 1.002
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "640455",
"profile": {
"available": true,
"pitcher_id": "640455",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 558.0,
"k_percent": 21.6,
"bb_percent": 7.0,
"woba": 0.35,
"xwoba": 0.34,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 11.0,
"hard_hit_percent": 41.4,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 94.6215,
"whiff_percent": 22.0,
"swing_percent": 50.2
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6756,
"command_and_miss": -0.0657,
"regression_edge": 0.2857,
"xwoba_edge": -0.8,
"barrel_edge": -0.8667,
"hard_hit_edge": -0.5,
"whiff_edge": -0.4286,
"bb_edge": 0.55,
"pitch_design_score": -0.2524
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "640455",
"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": 85.3419083556381,
"release_spin_rate": 2107.9845133297035,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 85.3419083556381,
"release_spin_rate": 2107.9845133297035,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3419,
"release_spin_rate": 2107.9845,
"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.2524,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8028,
"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.387,
"sample_weight": 1.0,
"run_prevention_factor": 1.0329,
"strikeout_factor": 0.9806,
"walk_factor": 0.956,
"homer_factor": 1.1133,
"woba_minus_xwoba": 0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "640455",
"espn_id": 33244,
"player_name": "Sean Manaea",
"team": "NYM",
"role": "pitcher",
"espn_rank": 584,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 584,
"gp_value": 30.0,
"gp_rank": "225",
"gs_value": 16.0,
"gs_rank": "132",
"qs_value": 6.0,
"qs_rank": "93",
"era_value": 4.7925,
"era_rank": null,
"w_value": 5.0,
"w_rank": "150",
"l_value": 7.0,
"l_rank": "86",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 133.1,
"ip_rank": "80",
"h_value": 138.0,
"h_rank": "43",
"er_value": 71.0,
"er_rank": "27",
"hr_value": 21.0,
"hr_rank": "32",
"bb_value": 41.0,
"bb_rank": "83",
"k_value": 126.0,
"k_rank": "63",
"k_per_9_value": 8.505,
"k_per_9_rank": 21.0,
"whip_value": 1.3425,
"whip_rank": null,
"war_value": -0.1,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0329,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0329,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.956,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1133,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9806,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
}
],
"provenance": {
"prediction": "output/games/20260915_BAL@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"
}
} |
| 20260915 | 20260915_BOS@TEX | away | Patrick Sandoval | Patrick Sandoval | True | 5.0 | 2.2 | -7 | 6 | 4 | -2 | 6/4 | 0/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.581818181818182,
"WHIP": 1.7636363636363637,
"IP": 55.0,
"games_started": null,
"games_pitched": 11,
"role_avg_IP": 5.0,
"recent_avg_IP": 5.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2533,
"sample_weight": 0.904,
"run_prevention_factor": 1.0215,
"strikeout_factor": 1.0072,
"walk_factor": 1.0271,
"homer_factor": 1.0077,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 10.7,
"woba": 0.372,
"xwoba": 0.349,
"barrel_percent": 6.5,
"hard_hit_percent": 35.7,
"whiff_percent": 25.9
},
"espn_rank": {
"rank": 658,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663776",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 11,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 17.0,
"R": 18.0,
"H": 32.0,
"BB": 14.0,
"SO": 28.0,
"HR": 3.0,
"BF": 117.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.6,
"H": 6.4,
"BB": 2.8,
"SO": 5.6,
"HR": 0.6,
"BF": 23.4,
"Pitches": 91.4
},
"rates": {
"ERA": 6.12,
"WHIP": 1.84,
"ER_per_IP": 0.68,
"H_per_IP": 1.28,
"BB_per_IP": 0.56,
"SO_per_IP": 1.12,
"HR_per_IP": 0.12
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.2,
"ER": 27.0,
"R": 31.0,
"H": 65.0,
"BB": 26.0,
"SO": 52.0,
"HR": 6.0,
"BF": 234.0,
"Pitches": 882.0
},
"per_game": {
"IP": 5.0,
"ER": 2.7,
"R": 3.1,
"H": 6.5,
"BB": 2.6,
"SO": 5.2,
"HR": 0.6,
"BF": 23.4,
"Pitches": 88.2
},
"rates": {
"ERA": 4.7961,
"WHIP": 1.7961,
"ER_per_IP": 0.53289,
"H_per_IP": 1.28289,
"BB_per_IP": 0.51316,
"SO_per_IP": 1.02632,
"HR_per_IP": 0.11842
}
},
"season": {
"games": 11,
"totals": {
"IP": 55.0,
"ER": 28.0,
"R": 32.0,
"H": 70.0,
"BB": 27.0,
"SO": 57.0,
"HR": 6.0,
"BF": 253.0,
"Pitches": 947.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5455,
"R": 2.9091,
"H": 6.3636,
"BB": 2.4545,
"SO": 5.1818,
"HR": 0.5455,
"BF": 23.0,
"Pitches": 86.0909
},
"rates": {
"ERA": 4.5818,
"WHIP": 1.7636,
"ER_per_IP": 0.50909,
"H_per_IP": 1.27273,
"BB_per_IP": 0.49091,
"SO_per_IP": 1.03636,
"HR_per_IP": 0.10909
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.836,
"predicted_H": 5.924,
"predicted_BB": 2.406,
"predicted_SO": 5.148,
"predicted_HR": 0.633,
"predicted_ERA": 5.1055,
"predicted_WHIP": 1.666
}
},
"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.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 6.0,
"form": 2.836,
"final": 4.3611,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.924,
"final": 4.9966,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.406,
"final": 1.2462,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.148,
"final": 5.5587,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.633,
"final": 0.3279,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1055,
"final": 5.1055,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.666,
"final": 1.666,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 50.2,
"ER": 27,
"H": 65,
"BB": 26,
"SO": 52,
"HR": 6,
"ERA": 4.796052631578948,
"WHIP": 1.7960526315789473,
"K9": 9.236842105263158,
"HR9": 1.0657894736842106,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.049822445486404,
"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": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6875,
"prior_weight": 0.3125
}
},
{
"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": 6,
"predicted_H": 6,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663776",
"player_name": "Patrick Sandoval",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 6.0,
"predicted_H": 6.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": 6.0,
"after": 6.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": 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": 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": 3,
"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": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 6.0,
"after": 6.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": 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": 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": "BOS",
"games": 150,
"wins": 82,
"losses": 68,
"win_pct": 0.5467,
"runs_scored": 663.0,
"runs_allowed": 575.0,
"run_differential": 88.0,
"run_differential_per_game": 0.5867,
"avg_runs_scored": 4.42,
"avg_runs_allowed": 3.8333,
"offense_index": 0.9848,
"defense_index": 1.1709,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.5,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1816
},
"opponent": {
"team": "TEX",
"games": 150,
"wins": 74,
"losses": 76,
"win_pct": 0.4933,
"runs_scored": 624.0,
"runs_allowed": 668.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2933,
"avg_runs_scored": 4.16,
"avg_runs_allowed": 4.4533,
"offense_index": 0.9268,
"defense_index": 1.0079,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0416
},
"edges": {
"quality_edge": 0.2232,
"offense_edge": -0.0152,
"opponent_offense_edge": -0.0732,
"defense_strength": 0.1709,
"opponent_defense_weakness": -0.0079,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.017,
"run_prevention": 0.96,
"strikeout": 1.0126
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663776",
"profile": {
"available": true,
"pitcher_id": "663776",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 226.0,
"k_percent": 22.5,
"bb_percent": 10.7,
"woba": 0.372,
"xwoba": 0.349,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.1506,
"avg_hyper_speed": 93.6029,
"whiff_percent": 25.9,
"swing_percent": 46.1
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6048,
"command_and_miss": 0.0021,
"regression_edge": 0.6571,
"xwoba_edge": -1.0571,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.1286,
"bb_edge": -0.375,
"pitch_design_score": -0.0972
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663776",
"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.11227164797407,
"release_spin_rate": 2171.9009532384985,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.11227164797407,
"release_spin_rate": 2171.9009532384985,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1123,
"release_spin_rate": 2171.901,
"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.0972,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6946,
"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.2533,
"sample_weight": 0.904,
"run_prevention_factor": 1.0215,
"strikeout_factor": 1.0072,
"walk_factor": 1.0271,
"homer_factor": 1.0077,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663776",
"espn_id": 40975,
"player_name": "Patrick Sandoval",
"team": "BOS",
"role": "pitcher",
"espn_rank": 658,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 658,
"gp_value": 11.0,
"gp_rank": "517",
"gs_value": 11.0,
"gs_rank": "163",
"qs_value": 1.0,
"qs_rank": "178",
"era_value": 4.5818,
"era_rank": null,
"w_value": 1.0,
"w_rank": "414",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 55.0,
"ip_rank": "277",
"h_value": 70.0,
"h_rank": "167",
"er_value": 28.0,
"er_rank": "212",
"hr_value": 6.0,
"hr_rank": "273",
"bb_value": 27.0,
"bb_rank": "197",
"k_value": 57.0,
"k_rank": "250",
"k_per_9_value": 9.327272,
"k_per_9_rank": 24.0,
"whip_value": 1.7636,
"whip_rank": null,
"war_value": -0.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0194,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0194,
"adjusted": 6
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0245,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.007,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0065,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 6,
"predicted_ER": 6,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260915_BOS@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"
}
} |
| 20260915 | 20260915_BOS@TEX | home | Jacob deGrom | Jacob deGrom | True | 5.2 | 5.0 | -2 | 3 | 2 | -1 | 3/3 | 2/1 | 8/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7968749999999996,
"WHIP": 1.078125,
"IP": 149.1,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 5.333,
"recent_avg_IP": 5.733,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4291,
"sample_weight": 1.0,
"run_prevention_factor": 0.9635,
"strikeout_factor": 1.1011,
"walk_factor": 0.942,
"homer_factor": 1.0358,
"regression_flag": "neutral",
"k_percent": 30.9,
"bb_percent": 6.3,
"woba": 0.275,
"xwoba": 0.285,
"barrel_percent": 8.2,
"hard_hit_percent": 44.8,
"whiff_percent": 33.8
},
"espn_rank": {
"rank": 55,
"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": "594798",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 10.0,
"R": 10.0,
"H": 13.0,
"BB": 7.0,
"SO": 39.0,
"HR": 2.0,
"BF": 103.0,
"Pitches": 448.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 2.6,
"BB": 1.4,
"SO": 7.8,
"HR": 0.4,
"BF": 20.6,
"Pitches": 89.6
},
"rates": {
"ERA": 3.1395,
"WHIP": 0.6977,
"ER_per_IP": 0.34884,
"H_per_IP": 0.45349,
"BB_per_IP": 0.24419,
"SO_per_IP": 1.36047,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.2,
"ER": 24.0,
"R": 24.0,
"H": 43.0,
"BB": 16.0,
"SO": 64.0,
"HR": 3.0,
"BF": 200.0,
"Pitches": 867.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.4,
"H": 4.3,
"BB": 1.6,
"SO": 6.4,
"HR": 0.3,
"BF": 20.0,
"Pitches": 86.7
},
"rates": {
"ERA": 4.4384,
"WHIP": 1.2123,
"ER_per_IP": 0.49315,
"H_per_IP": 0.88356,
"BB_per_IP": 0.32877,
"SO_per_IP": 1.31507,
"HR_per_IP": 0.06164
}
},
"season": {
"games": 28,
"totals": {
"IP": 149.1,
"ER": 63.0,
"R": 63.0,
"H": 123.0,
"BB": 38.0,
"SO": 186.0,
"HR": 19.0,
"BF": 601.0,
"Pitches": 2472.0
},
"per_game": {
"IP": 5.1,
"ER": 2.25,
"R": 2.25,
"H": 4.3929,
"BB": 1.3571,
"SO": 6.6429,
"HR": 0.6786,
"BF": 21.4643,
"Pitches": 88.2857
},
"rates": {
"ERA": 3.7969,
"WHIP": 1.0781,
"ER_per_IP": 0.42188,
"H_per_IP": 0.82366,
"BB_per_IP": 0.25446,
"SO_per_IP": 1.24554,
"HR_per_IP": 0.12723
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.317,
"predicted_H": 3.914,
"predicted_BB": 1.573,
"predicted_SO": 6.84,
"predicted_HR": 0.481,
"predicted_ERA": 3.8535,
"predicted_WHIP": 1.014
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.317,
"final": 3.0138,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.914,
"final": 3.9496,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.573,
"final": 1.7498,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.84,
"final": 7.3203,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.481,
"final": 1.1099,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8535,
"final": 3.8535,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.014,
"final": 1.014,
"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": 24,
"H": 43,
"BB": 16,
"SO": 64,
"HR": 3,
"ERA": 4.438356164383562,
"WHIP": 1.2123287671232876,
"K9": 11.835616438356166,
"HR9": 0.5547945205479452,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-10T00:00:00"
},
"recent_form_boost": 0.9949884963155318,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 2.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": "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": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"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": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 3,
"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": "TEX",
"games": 150,
"wins": 74,
"losses": 76,
"win_pct": 0.4933,
"runs_scored": 624.0,
"runs_allowed": 668.0,
"run_differential": -44.0,
"run_differential_per_game": -0.2933,
"avg_runs_scored": 4.16,
"avg_runs_allowed": 4.4533,
"offense_index": 0.9268,
"defense_index": 1.0079,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0416
},
"opponent": {
"team": "BOS",
"games": 150,
"wins": 82,
"losses": 68,
"win_pct": 0.5467,
"runs_scored": 663.0,
"runs_allowed": 575.0,
"run_differential": 88.0,
"run_differential_per_game": 0.5867,
"avg_runs_scored": 4.42,
"avg_runs_allowed": 3.8333,
"offense_index": 0.9848,
"defense_index": 1.1709,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 2.5,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.1816
},
"edges": {
"quality_edge": -0.2232,
"offense_edge": -0.0732,
"opponent_offense_edge": -0.0152,
"defense_strength": 0.0079,
"opponent_defense_weakness": -0.1709,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9919,
"run_prevention": 1.0079,
"strikeout": 0.9945
},
"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": 578.0,
"k_percent": 30.9,
"bb_percent": 6.3,
"woba": 0.275,
"xwoba": 0.285,
"sweet_spot_percent": 37.4,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 44.8,
"avg_best_speed": 80.3855,
"avg_hyper_speed": 94.6614,
"whiff_percent": 33.8,
"swing_percent": 51.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2542,
"command_and_miss": 1.1571,
"regression_edge": -0.2857,
"xwoba_edge": 0.7714,
"barrel_edge": -0.2444,
"hard_hit_edge": -0.9857,
"whiff_edge": 1.2571,
"bb_edge": 0.725,
"pitch_design_score": 0.1811
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "594798",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 93.08234532476492,
"release_spin_rate": 2431.3043107890794,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 93.08234532476492,
"release_spin_rate": 2431.3043107890794,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0823,
"release_spin_rate": 2431.3043,
"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.1811,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2934,
"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.4291,
"sample_weight": 1.0,
"run_prevention_factor": 0.9635,
"strikeout_factor": 1.1011,
"walk_factor": 0.942,
"homer_factor": 1.0358,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "594798",
"espn_id": 32796,
"player_name": "Jacob deGrom",
"team": "TEX",
"role": "pitcher",
"espn_rank": 55,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 55,
"gp_value": 28.0,
"gp_rank": "278",
"gs_value": 28.0,
"gs_rank": "33",
"qs_value": 12.0,
"qs_rank": "37",
"era_value": 3.7968,
"era_rank": 28.0,
"w_value": 10.0,
"w_rank": "30",
"l_value": 9.0,
"l_rank": "32",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 149.1,
"ip_rank": "48",
"h_value": 123.0,
"h_rank": "76",
"er_value": 63.0,
"er_rank": "57",
"hr_value": 19.0,
"hr_rank": "52",
"bb_value": 38.0,
"bb_rank": "104",
"k_value": 186.0,
"k_rank": "12",
"k_per_9_value": 11.209822,
"k_per_9_rank": 6.0,
"whip_value": 1.0781,
"whip_rank": 12.0,
"war_value": 2.46,
"war_rank": 29.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9635,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9635,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.942,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0358,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.1011,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260915_BOS@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"
}
} |
| 20260915 | 20260915_CHW@CLE | away | Chris Murphy | Chris Murphy | True | 4.2 | 0.2 | -12 | 1 | 3 | 2 | 4/2 | 0/1 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.228915662650603,
"WHIP": 1.4096385542168675,
"IP": 27.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 1.0,
"recent_avg_IP": 1.0,
"last_start_IP": 0.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2112,
"sample_weight": 0.476,
"run_prevention_factor": 0.982,
"strikeout_factor": 1.0242,
"walk_factor": 1.0143,
"homer_factor": 0.978,
"regression_flag": "positive_pitcher_regression",
"k_percent": 24.3,
"bb_percent": 10.7,
"woba": 0.317,
"xwoba": 0.285,
"barrel_percent": 6.9,
"hard_hit_percent": 34.5,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 351,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.603,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5284,
"prior_weight": 0.4716
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669684",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 2.0,
"R": 3.0,
"H": 4.0,
"BB": 2.0,
"SO": 5.0,
"HR": 0.0,
"BF": 22.0,
"Pitches": 86.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.6,
"H": 0.8,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 4.4,
"Pitches": 17.2
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.2857,
"ER_per_IP": 0.42857,
"H_per_IP": 0.85714,
"BB_per_IP": 0.42857,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.2,
"ER": 5.0,
"R": 6.0,
"H": 9.0,
"BB": 4.0,
"SO": 11.0,
"HR": 1.0,
"BF": 45.0,
"Pitches": 194.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.6,
"H": 0.9,
"BB": 0.4,
"SO": 1.1,
"HR": 0.1,
"BF": 4.5,
"Pitches": 19.4
},
"rates": {
"ERA": 4.6552,
"WHIP": 1.3448,
"ER_per_IP": 0.51724,
"H_per_IP": 0.93103,
"BB_per_IP": 0.41379,
"SO_per_IP": 1.13793,
"HR_per_IP": 0.10345
}
},
"season": {
"games": 27,
"totals": {
"IP": 27.2,
"ER": 13.0,
"R": 15.0,
"H": 25.0,
"BB": 14.0,
"SO": 27.0,
"HR": 2.0,
"BF": 124.0,
"Pitches": 486.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4815,
"R": 0.5556,
"H": 0.9259,
"BB": 0.5185,
"SO": 1.0,
"HR": 0.0741,
"BF": 4.5926,
"Pitches": 18.0
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.4096,
"ER_per_IP": 0.46988,
"H_per_IP": 0.90361,
"BB_per_IP": 0.50602,
"SO_per_IP": 0.9759,
"HR_per_IP": 0.07229
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.328,
"predicted_H": 2.544,
"predicted_BB": 1.114,
"predicted_SO": 2.761,
"predicted_HR": 0.263,
"predicted_ERA": 4.3801,
"predicted_WHIP": 1.3404
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5493,
"form_weight": 0.4507,
"form_reliability": 0.5284,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.603,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5284,
"prior_weight": 0.4716
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 2.2,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.328,
"final": 1.1478,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.544,
"final": 3.3437,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.114,
"final": 0.5021,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 2.761,
"final": 3.9908,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.263,
"final": 0.1185,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3801,
"final": 4.3801,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3404,
"final": 1.3404,
"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": 9.2,
"ER": 5,
"H": 9,
"BB": 4,
"SO": 11,
"HR": 1,
"ERA": 4.655172413793104,
"WHIP": 1.3448275862068966,
"K9": 10.241379310344827,
"HR9": 0.9310344827586208,
"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-07-30T00:00:00"
},
"recent_form_boost": 1.0072248081905049,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.603,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5284,
"prior_weight": 0.4716
}
},
{
"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": 1,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669684",
"player_name": "Chris Murphy",
"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": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 150,
"wins": 77,
"losses": 73,
"win_pct": 0.5133,
"runs_scored": 702.0,
"runs_allowed": 664.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2533,
"avg_runs_scored": 4.68,
"avg_runs_allowed": 4.4267,
"offense_index": 1.042,
"defense_index": 1.0146,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0073
},
"opponent": {
"team": "CLE",
"games": 151,
"wins": 76,
"losses": 75,
"win_pct": 0.5033,
"runs_scored": 618.0,
"runs_allowed": 629.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0728,
"avg_runs_scored": 4.0927,
"avg_runs_allowed": 4.1656,
"offense_index": 0.9112,
"defense_index": 1.0782,
"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.0061
},
"edges": {
"quality_edge": 0.0134,
"offense_edge": 0.042,
"opponent_offense_edge": -0.0888,
"defense_strength": 0.0146,
"opponent_defense_weakness": -0.0782,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0045,
"run_prevention": 0.9837,
"strikeout": 1.0075
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669684",
"profile": {
"available": true,
"pitcher_id": "669684",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 119.0,
"k_percent": 24.3,
"bb_percent": 10.7,
"woba": 0.317,
"xwoba": 0.285,
"sweet_spot_percent": 26.4,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 34.5,
"avg_best_speed": 76.375,
"avg_hyper_speed": 93.0263,
"whiff_percent": 31.6,
"swing_percent": 50.7
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4544,
"command_and_miss": 0.4029,
"regression_edge": 0.9143,
"xwoba_edge": 0.7714,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.4857,
"whiff_edge": 0.9429,
"bb_edge": -0.375,
"pitch_design_score": -0.0868
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669684",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.2982970476781,
"release_spin_rate": 2384.676474817831,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 88.2982970476781,
"release_spin_rate": 2384.676474817831,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2983,
"release_spin_rate": 2384.6765,
"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.0868,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6202,
"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.2112,
"sample_weight": 0.476,
"run_prevention_factor": 0.982,
"strikeout_factor": 1.0242,
"walk_factor": 1.0143,
"homer_factor": 0.978,
"woba_minus_xwoba": 0.032,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "669684",
"espn_id": 4084958,
"player_name": "Chris Murphy",
"team": "CHW",
"role": "pitcher",
"espn_rank": 351,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 351,
"gp_value": 31.0,
"gp_rank": "225",
"gs_value": 2.0,
"gs_rank": "273",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 3.9375,
"era_rank": null,
"w_value": 3.0,
"w_rank": "248",
"l_value": 0.0,
"l_rank": "577",
"sv_value": 1.0,
"sv_rank": "140",
"hld_value": 1.0,
"hld_rank": "272",
"ip_value": 32.0,
"ip_rank": "433",
"h_value": 28.0,
"h_rank": "458",
"er_value": 14.0,
"er_rank": "450",
"hr_value": 2.0,
"hr_rank": "530",
"bb_value": 15.0,
"bb_rank": "387",
"k_value": 34.0,
"k_rank": "415",
"k_per_9_value": 9.5625,
"k_per_9_rank": 25.0,
"whip_value": 1.3437,
"whip_rank": null,
"war_value": 0.19,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 7.0,
"factor": 0.9914,
"adjusted": 7
},
"predicted_H": {
"original": 7.0,
"factor": 0.9914,
"adjusted": 7
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0068,
"adjusted": 2
},
"predicted_HR": {
"original": 2.0,
"factor": 0.9895,
"adjusted": 2
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0115,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 4,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 79,
"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 -12 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260915_CHW@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"
}
} |
| 20260915 | 20260915_CHW@CLE | home | Foster Griffin | Foster Griffin | True | 5.1 | 4.0 | -4 | 4 | 2 | -2 | 6/5 | 2/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6516393442622954,
"WHIP": 1.180327868852459,
"IP": 162.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.609,
"recent_avg_IP": 4.867,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1041,
"sample_weight": 1.0,
"run_prevention_factor": 1.0088,
"strikeout_factor": 0.9869,
"walk_factor": 0.944,
"homer_factor": 1.0313,
"regression_flag": "neutral",
"k_percent": 21.7,
"bb_percent": 6.4,
"woba": 0.309,
"xwoba": 0.32,
"barrel_percent": 8.7,
"hard_hit_percent": 37.2,
"whiff_percent": 23.0
},
"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": "656492",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 16.0,
"R": 16.0,
"H": 29.0,
"BB": 10.0,
"SO": 21.0,
"HR": 1.0,
"BF": 108.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.0,
"ER": 3.2,
"R": 3.2,
"H": 5.8,
"BB": 2.0,
"SO": 4.2,
"HR": 0.2,
"BF": 21.6,
"Pitches": 88.4
},
"rates": {
"ERA": 5.9178,
"WHIP": 1.6027,
"ER_per_IP": 0.65753,
"H_per_IP": 1.19178,
"BB_per_IP": 0.41096,
"SO_per_IP": 0.86301,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.1,
"ER": 32.0,
"R": 34.0,
"H": 63.0,
"BB": 17.0,
"SO": 37.0,
"HR": 6.0,
"BF": 229.0,
"Pitches": 896.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.4,
"H": 6.3,
"BB": 1.7,
"SO": 3.7,
"HR": 0.6,
"BF": 22.9,
"Pitches": 89.6
},
"rates": {
"ERA": 5.5032,
"WHIP": 1.5287,
"ER_per_IP": 0.61146,
"H_per_IP": 1.20382,
"BB_per_IP": 0.32484,
"SO_per_IP": 0.70701,
"HR_per_IP": 0.11465
}
},
"season": {
"games": 29,
"totals": {
"IP": 162.2,
"ER": 66.0,
"R": 73.0,
"H": 149.0,
"BB": 43.0,
"SO": 146.0,
"HR": 23.0,
"BF": 674.0,
"Pitches": 2667.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2759,
"R": 2.5172,
"H": 5.1379,
"BB": 1.4828,
"SO": 5.0345,
"HR": 0.7931,
"BF": 23.2414,
"Pitches": 91.9655
},
"rates": {
"ERA": 3.6516,
"WHIP": 1.1803,
"ER_per_IP": 0.40574,
"H_per_IP": 0.91598,
"BB_per_IP": 0.26434,
"SO_per_IP": 0.89754,
"HR_per_IP": 0.14139
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.046,
"predicted_H": 5.876,
"predicted_BB": 1.867,
"predicted_SO": 4.387,
"predicted_HR": 0.504,
"predicted_ERA": 5.2092,
"predicted_WHIP": 1.4715
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.046,
"final": 3.4392,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.876,
"final": 5.9271,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.867,
"final": 1.9218,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.387,
"final": 4.6396,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.504,
"final": 1.1206,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2092,
"final": 5.2092,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4715,
"final": 1.4715,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.1,
"ER": 32,
"H": 63,
"BB": 17,
"SO": 37,
"HR": 6,
"ERA": 5.503184713375796,
"WHIP": 1.5286624203821655,
"K9": 6.3630573248407645,
"HR9": 1.0318471337579618,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 1.12269004940863,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656492",
"player_name": "Foster Griffin",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 151,
"wins": 76,
"losses": 75,
"win_pct": 0.5033,
"runs_scored": 618.0,
"runs_allowed": 629.0,
"run_differential": -11.0,
"run_differential_per_game": -0.0728,
"avg_runs_scored": 4.0927,
"avg_runs_allowed": 4.1656,
"offense_index": 0.9112,
"defense_index": 1.0782,
"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.0061
},
"opponent": {
"team": "CHW",
"games": 150,
"wins": 77,
"losses": 73,
"win_pct": 0.5133,
"runs_scored": 702.0,
"runs_allowed": 664.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2533,
"avg_runs_scored": 4.68,
"avg_runs_allowed": 4.4267,
"offense_index": 1.042,
"defense_index": 1.0146,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 4.1,
"run_differential": -1.0
},
"available": true,
"quality_score": 0.0073
},
"edges": {
"quality_edge": -0.0134,
"offense_edge": -0.0888,
"opponent_offense_edge": 0.042,
"defense_strength": 0.0782,
"opponent_defense_weakness": -0.0146,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0001,
"run_prevention": 0.9996,
"strikeout": 0.9962
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656492",
"profile": {
"available": true,
"pitcher_id": "656492",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 652.0,
"k_percent": 21.7,
"bb_percent": 6.4,
"woba": 0.309,
"xwoba": 0.32,
"sweet_spot_percent": 36.8,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 37.2,
"avg_best_speed": 76.1782,
"avg_hyper_speed": 94.0232,
"whiff_percent": 23.0,
"swing_percent": 48.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1086,
"command_and_miss": 0.0207,
"regression_edge": -0.3143,
"xwoba_edge": -0.2286,
"barrel_edge": -0.3556,
"hard_hit_edge": 0.1,
"whiff_edge": -0.2857,
"bb_edge": 0.7,
"pitch_design_score": -0.215
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656492",
"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": 86.0102663049186,
"release_spin_rate": 2150.8134343301904,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 86.0102663049186,
"release_spin_rate": 2150.8134343301904,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.0103,
"release_spin_rate": 2150.8134,
"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.215,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.5354,
"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.1041,
"sample_weight": 1.0,
"run_prevention_factor": 1.0088,
"strikeout_factor": 0.9869,
"walk_factor": 0.944,
"homer_factor": 1.0313,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656492",
"espn_id": 33773,
"player_name": "Foster Griffin",
"team": "CLE",
"role": "pitcher",
"espn_rank": 34,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 34,
"gp_value": 29.0,
"gp_rank": "244",
"gs_value": 29.0,
"gs_rank": "14",
"qs_value": 14.0,
"qs_rank": "25",
"era_value": 3.6516,
"era_rank": 23.0,
"w_value": 15.0,
"w_rank": "3",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 162.2,
"ip_rank": "25",
"h_value": 149.0,
"h_rank": "24",
"er_value": 66.0,
"er_rank": "49",
"hr_value": 23.0,
"hr_rank": "22",
"bb_value": 43.0,
"bb_rank": "70",
"k_value": 146.0,
"k_rank": "36",
"k_per_9_value": 8.077869,
"k_per_9_rank": 38.0,
"whip_value": 1.1803,
"whip_rank": 25.0,
"war_value": 2.99,
"war_rank": 24.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0088,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0088,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0313,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9869,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260915_CHW@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"
}
} |
| 20260915 | 20260915_DET@TOR | away | Drew Anderson | Drew Anderson | True | 5.0 | 5.0 | 0 | 3 | 0 | -3 | 2/2 | 0/3 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.804123711340206,
"WHIP": 1.309278350515464,
"IP": 97.0,
"games_started": null,
"games_pitched": 47,
"role_avg_IP": 4.519,
"recent_avg_IP": 5.133,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1151,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 1.0337,
"walk_factor": 1.014,
"homer_factor": 1.0245,
"regression_flag": "neutral",
"k_percent": 25.3,
"bb_percent": 9.9,
"woba": 0.323,
"xwoba": 0.305,
"barrel_percent": 8.4,
"hard_hit_percent": 39.2,
"whiff_percent": 27.6
},
"espn_rank": {
"rank": 183,
"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.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7971,
"prior_weight": 0.2029
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623454",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 47,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 10.0,
"R": 11.0,
"H": 21.0,
"BB": 13.0,
"SO": 23.0,
"HR": 4.0,
"BF": 108.0,
"Pitches": 414.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.2,
"H": 4.2,
"BB": 2.6,
"SO": 4.6,
"HR": 0.8,
"BF": 21.6,
"Pitches": 82.8
},
"rates": {
"ERA": 3.5065,
"WHIP": 1.3247,
"ER_per_IP": 0.38961,
"H_per_IP": 0.81818,
"BB_per_IP": 0.50649,
"SO_per_IP": 0.8961,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 37.2,
"ER": 13.0,
"R": 14.0,
"H": 31.0,
"BB": 17.0,
"SO": 31.0,
"HR": 5.0,
"BF": 155.0,
"Pitches": 600.0
},
"per_game": {
"IP": 3.2,
"ER": 1.3,
"R": 1.4,
"H": 3.1,
"BB": 1.7,
"SO": 3.1,
"HR": 0.5,
"BF": 15.5,
"Pitches": 60.0
},
"rates": {
"ERA": 3.1062,
"WHIP": 1.2743,
"ER_per_IP": 0.34513,
"H_per_IP": 0.82301,
"BB_per_IP": 0.45133,
"SO_per_IP": 0.82301,
"HR_per_IP": 0.13274
}
},
"season": {
"games": 47,
"totals": {
"IP": 97.0,
"ER": 41.0,
"R": 45.0,
"H": 87.0,
"BB": 40.0,
"SO": 105.0,
"HR": 14.0,
"BF": 414.0,
"Pitches": 1611.0
},
"per_game": {
"IP": 2.0,
"ER": 0.8723,
"R": 0.9574,
"H": 1.8511,
"BB": 0.8511,
"SO": 2.234,
"HR": 0.2979,
"BF": 8.8085,
"Pitches": 34.2766
},
"rates": {
"ERA": 3.8041,
"WHIP": 1.3093,
"ER_per_IP": 0.42268,
"H_per_IP": 0.89691,
"BB_per_IP": 0.41237,
"SO_per_IP": 1.08247,
"HR_per_IP": 0.14433
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.687,
"predicted_H": 3.586,
"predicted_BB": 1.864,
"predicted_SO": 3.794,
"predicted_HR": 0.605,
"predicted_ERA": 3.658,
"predicted_WHIP": 1.3135
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4357,
"form_weight": 0.5643,
"form_reliability": 0.7971,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7971,
"prior_weight": 0.2029
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.687,
"final": 1.8234,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.586,
"final": 2.8949,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.864,
"final": 1.0518,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.794,
"final": 4.3195,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.605,
"final": 0.7771,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.658,
"final": 3.658,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3135,
"final": 1.3135,
"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": 37.2,
"ER": 13,
"H": 31,
"BB": 17,
"SO": 31,
"HR": 5,
"ERA": 3.1061946902654864,
"WHIP": 1.2743362831858405,
"K9": 7.407079646017698,
"HR9": 1.1946902654867255,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8466705183788121,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.643,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7971,
"prior_weight": 0.2029
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623454",
"player_name": "Drew Anderson",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 150,
"wins": 71,
"losses": 79,
"win_pct": 0.4733,
"runs_scored": 672.0,
"runs_allowed": 601.0,
"run_differential": 71.0,
"run_differential_per_game": 0.4733,
"avg_runs_scored": 4.48,
"avg_runs_allowed": 4.0067,
"offense_index": 0.9975,
"defense_index": 1.121,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.4,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.1053
},
"opponent": {
"team": "TOR",
"games": 151,
"wins": 75,
"losses": 76,
"win_pct": 0.4967,
"runs_scored": 613.0,
"runs_allowed": 645.0,
"run_differential": -32.0,
"run_differential_per_game": -0.2119,
"avg_runs_scored": 4.0596,
"avg_runs_allowed": 4.2715,
"offense_index": 0.9039,
"defense_index": 1.0515,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.8,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0288
},
"edges": {
"quality_edge": 0.1341,
"offense_edge": -0.0025,
"opponent_offense_edge": -0.0961,
"defense_strength": 0.121,
"opponent_defense_weakness": -0.0515,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0128,
"run_prevention": 0.9658,
"strikeout": 1.0117
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623454",
"profile": {
"available": true,
"pitcher_id": "623454",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 371.0,
"k_percent": 25.3,
"bb_percent": 9.9,
"woba": 0.323,
"xwoba": 0.305,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 39.2,
"avg_best_speed": 80.136,
"avg_hyper_speed": 94.1466,
"whiff_percent": 27.6,
"swing_percent": 49.2
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0318,
"command_and_miss": 0.3071,
"regression_edge": 0.5143,
"xwoba_edge": 0.2,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.1857,
"whiff_edge": 0.3714,
"bb_edge": -0.175,
"pitch_design_score": 0.0205
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623454",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 79,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.21554450990143,
"release_spin_rate": 2144.3428913561374,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 79,
"pitch_usage": 0.0,
"release_speed": 90.21554450990143,
"release_spin_rate": 2144.3428913561374,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2155,
"release_spin_rate": 2144.3429,
"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.0205,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1467,
"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.1151,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 1.0337,
"walk_factor": 1.014,
"homer_factor": 1.0245,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "623454",
"espn_id": 28617,
"player_name": "Drew Anderson",
"team": "MIL",
"role": "pitcher",
"espn_rank": 183,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 183,
"gp_value": 47.0,
"gp_rank": "129",
"gs_value": 9.0,
"gs_rank": "181",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 3.8041,
"era_rank": null,
"w_value": 4.0,
"w_rank": "192",
"l_value": 6.0,
"l_rank": "114",
"sv_value": 2.0,
"sv_rank": "93",
"hld_value": 6.0,
"hld_rank": "152",
"ip_value": 97.0,
"ip_rank": "134",
"h_value": 87.0,
"h_rank": "135",
"er_value": 41.0,
"er_rank": "150",
"hr_value": 14.0,
"hr_rank": "109",
"bb_value": 40.0,
"bb_rank": "88",
"k_value": 105.0,
"k_rank": "93",
"k_per_9_value": 9.742269,
"k_per_9_rank": 18.0,
"whip_value": 1.3092,
"whip_rank": null,
"war_value": 0.96,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9902,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9902,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.014,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0245,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0337,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 17,
"Pitches": 69,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +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/20260915_DET@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_DET@TOR | home | Braydon Fisher | Braydon Fisher | True | 5.0 | 1.1 | -11 | 3 | 0 | -3 | 4/0 | 3/2 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2201834862385317,
"WHIP": 1.2247706422018347,
"IP": 72.2,
"games_started": null,
"games_pitched": 72,
"role_avg_IP": 1.111,
"recent_avg_IP": 1.133,
"last_start_IP": 1.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0177,
"sample_weight": 1.0,
"run_prevention_factor": 0.9985,
"strikeout_factor": 1.0314,
"walk_factor": 1.074,
"homer_factor": 1.0506,
"regression_flag": "neutral",
"k_percent": 24.4,
"bb_percent": 12.9,
"woba": 0.291,
"xwoba": 0.309,
"barrel_percent": 9.9,
"hard_hit_percent": 38.5,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 155,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 72.2,
"season_ERA": 3.22,
"season_WHIP": 1.225,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.715,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7464,
"prior_weight": 0.2536
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680755",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 72,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 3.2,
"ER": 1.0,
"R": 1.0,
"H": 2.0,
"BB": 2.0,
"SO": 5.0,
"HR": 1.0,
"BF": 14.0,
"Pitches": 73.0
},
"per_game": {
"IP": 0.2,
"ER": 0.2,
"R": 0.2,
"H": 0.4,
"BB": 0.4,
"SO": 1.0,
"HR": 0.2,
"BF": 2.8,
"Pitches": 14.6
},
"rates": {
"ERA": 2.4545,
"WHIP": 1.0909,
"ER_per_IP": 0.27273,
"H_per_IP": 0.54545,
"BB_per_IP": 0.54545,
"SO_per_IP": 1.36364,
"HR_per_IP": 0.27273
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 7.2,
"ER": 1.0,
"R": 3.0,
"H": 6.0,
"BB": 4.0,
"SO": 12.0,
"HR": 1.0,
"BF": 32.0,
"Pitches": 158.0
},
"per_game": {
"IP": 0.2,
"ER": 0.1,
"R": 0.3,
"H": 0.6,
"BB": 0.4,
"SO": 1.2,
"HR": 0.1,
"BF": 3.2,
"Pitches": 15.8
},
"rates": {
"ERA": 1.1739,
"WHIP": 1.3043,
"ER_per_IP": 0.13043,
"H_per_IP": 0.78261,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.56522,
"HR_per_IP": 0.13043
}
},
"season": {
"games": 72,
"totals": {
"IP": 72.2,
"ER": 26.0,
"R": 33.0,
"H": 51.0,
"BB": 38.0,
"SO": 72.0,
"HR": 8.0,
"BF": 295.0,
"Pitches": 1189.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3611,
"R": 0.4583,
"H": 0.7083,
"BB": 0.5278,
"SO": 1.0,
"HR": 0.1111,
"BF": 4.0972,
"Pitches": 16.5139
},
"rates": {
"ERA": 3.2202,
"WHIP": 1.2248,
"ER_per_IP": 0.3578,
"H_per_IP": 0.70183,
"BB_per_IP": 0.52294,
"SO_per_IP": 0.99083,
"HR_per_IP": 0.11009
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.0,
"predicted_ER": 0.611,
"predicted_H": 1.469,
"predicted_BB": 0.977,
"predicted_SO": 2.487,
"predicted_HR": 0.356,
"predicted_ERA": 2.7707,
"predicted_WHIP": 1.2325
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4571,
"form_weight": 0.5429,
"form_reliability": 0.7464,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.715,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7464,
"prior_weight": 0.2536
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.0,
"final": 3.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.611,
"final": 1.7031,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 1.469,
"final": 2.626,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.977,
"final": 1.9018,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.487,
"final": 3.1787,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.356,
"final": 0.1933,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7707,
"final": 2.7707,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2325,
"final": 1.2325,
"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": 7.2,
"ER": 1,
"H": 6,
"BB": 4,
"SO": 12,
"HR": 1,
"ERA": 1.173913043478261,
"WHIP": 1.3043478260869565,
"K9": 14.08695652173913,
"HR9": 1.173913043478261,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-13T00:00:00"
},
"recent_form_boost": 0.9065834176541974,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.715,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7464,
"prior_weight": 0.2536
}
},
{
"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": 4,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680755",
"player_name": "Braydon Fisher",
"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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 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": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"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": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 151,
"wins": 75,
"losses": 76,
"win_pct": 0.4967,
"runs_scored": 613.0,
"runs_allowed": 645.0,
"run_differential": -32.0,
"run_differential_per_game": -0.2119,
"avg_runs_scored": 4.0596,
"avg_runs_allowed": 4.2715,
"offense_index": 0.9039,
"defense_index": 1.0515,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.8,
"run_differential": 9.0
},
"available": true,
"quality_score": -0.0288
},
"opponent": {
"team": "DET",
"games": 150,
"wins": 71,
"losses": 79,
"win_pct": 0.4733,
"runs_scored": 672.0,
"runs_allowed": 601.0,
"run_differential": 71.0,
"run_differential_per_game": 0.4733,
"avg_runs_scored": 4.48,
"avg_runs_allowed": 4.0067,
"offense_index": 0.9975,
"defense_index": 1.121,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.4,
"run_differential": 25.0
},
"available": true,
"quality_score": 0.1053
},
"edges": {
"quality_edge": -0.1341,
"offense_edge": -0.0961,
"opponent_offense_edge": -0.0025,
"defense_strength": 0.0515,
"opponent_defense_weakness": -0.121,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9963,
"run_prevention": 1.0012,
"strikeout": 0.9962
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680755",
"profile": {
"available": true,
"pitcher_id": "680755",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 285.0,
"k_percent": 24.4,
"bb_percent": 12.9,
"woba": 0.291,
"xwoba": 0.309,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 38.5,
"avg_best_speed": 76.4471,
"avg_hyper_speed": 93.5751,
"whiff_percent": 28.1,
"swing_percent": 44.0
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0853,
"command_and_miss": 0.1243,
"regression_edge": -0.5143,
"xwoba_edge": 0.0857,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.0857,
"whiff_edge": 0.4429,
"bb_edge": -0.925,
"pitch_design_score": -0.1372
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680755",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 18,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 87.39893660448675,
"release_spin_rate": 2331.21366252146,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 18,
"pitch_usage": 0.0,
"release_speed": 87.39893660448675,
"release_spin_rate": 2331.21366252146,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3989,
"release_spin_rate": 2331.2137,
"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.1372,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.98,
"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.0177,
"sample_weight": 1.0,
"run_prevention_factor": 0.9985,
"strikeout_factor": 1.0314,
"walk_factor": 1.074,
"homer_factor": 1.0506,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680755",
"espn_id": 41318,
"player_name": "Braydon Fisher",
"team": "TOR",
"role": "pitcher",
"espn_rank": 155,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 155,
"gp_value": 72.0,
"gp_rank": "5",
"gs_value": 9.0,
"gs_rank": "181",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 3.2201,
"era_rank": null,
"w_value": 3.0,
"w_rank": "248",
"l_value": 4.0,
"l_rank": "190",
"sv_value": 1.0,
"sv_rank": "140",
"hld_value": 13.0,
"hld_rank": "64",
"ip_value": 72.2,
"ip_rank": "181",
"h_value": 51.0,
"h_rank": "243",
"er_value": 26.0,
"er_rank": "236",
"hr_value": 8.0,
"hr_rank": "208",
"bb_value": 38.0,
"bb_rank": "104",
"k_value": 72.0,
"k_rank": "183",
"k_per_9_value": 8.917432,
"k_per_9_rank": 27.0,
"whip_value": 1.2247,
"whip_rank": null,
"war_value": 1.18,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9985,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9985,
"adjusted": 1
},
"predicted_BB": {
"original": 3.0,
"factor": 1.074,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0506,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0314,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -11 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260915_DET@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_KC@HOU | away | Michael Wacha | Michael Wacha | True | 6.1 | 6.0 | -1 | 2 | 4 | 2 | 5/4 | 5/1 | 9/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.2518248175182483,
"WHIP": 1.1058394160583942,
"IP": 182.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 6.299,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0493,
"sample_weight": 1.0,
"run_prevention_factor": 0.9958,
"strikeout_factor": 0.9714,
"walk_factor": 0.946,
"homer_factor": 0.9746,
"regression_flag": "neutral",
"k_percent": 20.0,
"bb_percent": 6.5,
"woba": 0.298,
"xwoba": 0.304,
"barrel_percent": 6.7,
"hard_hit_percent": 35.9,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 14,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "608379",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 8.0,
"R": 8.0,
"H": 22.0,
"BB": 7.0,
"SO": 30.0,
"HR": 6.0,
"BF": 124.0,
"Pitches": 467.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 4.4,
"BB": 1.4,
"SO": 6.0,
"HR": 1.2,
"BF": 24.8,
"Pitches": 93.4
},
"rates": {
"ERA": 2.25,
"WHIP": 0.9062,
"ER_per_IP": 0.25,
"H_per_IP": 0.6875,
"BB_per_IP": 0.21875,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.1875
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.1,
"ER": 16.0,
"R": 18.0,
"H": 46.0,
"BB": 14.0,
"SO": 51.0,
"HR": 10.0,
"BF": 249.0,
"Pitches": 948.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.8,
"H": 4.6,
"BB": 1.4,
"SO": 5.1,
"HR": 1.0,
"BF": 24.9,
"Pitches": 94.8
},
"rates": {
"ERA": 2.2737,
"WHIP": 0.9474,
"ER_per_IP": 0.25263,
"H_per_IP": 0.72632,
"BB_per_IP": 0.22105,
"SO_per_IP": 0.80526,
"HR_per_IP": 0.15789
}
},
"season": {
"games": 29,
"totals": {
"IP": 182.2,
"ER": 66.0,
"R": 70.0,
"H": 154.0,
"BB": 48.0,
"SO": 147.0,
"HR": 24.0,
"BF": 736.0,
"Pitches": 2726.0
},
"per_game": {
"IP": 6.1,
"ER": 2.2759,
"R": 2.4138,
"H": 5.3103,
"BB": 1.6552,
"SO": 5.069,
"HR": 0.8276,
"BF": 25.3793,
"Pitches": 94.0
},
"rates": {
"ERA": 3.2518,
"WHIP": 1.1058,
"ER_per_IP": 0.36131,
"H_per_IP": 0.84307,
"BB_per_IP": 0.26277,
"SO_per_IP": 0.80474,
"HR_per_IP": 0.13139
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.949,
"predicted_H": 4.865,
"predicted_BB": 1.582,
"predicted_SO": 5.546,
"predicted_HR": 1.033,
"predicted_ERA": 2.7692,
"predicted_WHIP": 1.0179
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.949,
"final": 1.5579,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.865,
"final": 4.9206,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 1.582,
"final": 2.9907,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.546,
"final": 5.7331,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.033,
"final": 0.6072,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7692,
"final": 2.7692,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0179,
"final": 1.0179,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.1,
"ER": 16,
"H": 46,
"BB": 14,
"SO": 51,
"HR": 10,
"ERA": 2.2736842105263158,
"WHIP": 0.9473684210526315,
"K9": 7.247368421052632,
"HR9": 1.4210526315789473,
"games_pitched": 10,
"quality_starts": 8,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.7448388928548251,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_BB": 5.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608379",
"player_name": "Michael Wacha",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 9.0,
"delta": 3.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 150,
"wins": 66,
"losses": 84,
"win_pct": 0.44,
"runs_scored": 634.0,
"runs_allowed": 728.0,
"run_differential": -94.0,
"run_differential_per_game": -0.6267,
"avg_runs_scored": 4.2267,
"avg_runs_allowed": 4.8533,
"offense_index": 0.9417,
"defense_index": 0.9248,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.0,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1628
},
"opponent": {
"team": "HOU",
"games": 150,
"wins": 75,
"losses": 75,
"win_pct": 0.5,
"runs_scored": 669.0,
"runs_allowed": 722.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3533,
"avg_runs_scored": 4.46,
"avg_runs_allowed": 4.8133,
"offense_index": 0.9937,
"defense_index": 0.9325,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.7,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.0783
},
"edges": {
"quality_edge": -0.0845,
"offense_edge": -0.0583,
"opponent_offense_edge": -0.0063,
"defense_strength": -0.0752,
"opponent_defense_weakness": 0.0675,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9946,
"run_prevention": 1.0107,
"strikeout": 0.998
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608379",
"profile": {
"available": true,
"pitcher_id": "608379",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 684.0,
"k_percent": 20.0,
"bb_percent": 6.5,
"woba": 0.298,
"xwoba": 0.304,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 35.9,
"avg_best_speed": 77.175,
"avg_hyper_speed": 93.4906,
"whiff_percent": 22.0,
"swing_percent": 48.7
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2082,
"command_and_miss": -0.1436,
"regression_edge": -0.1714,
"xwoba_edge": 0.2286,
"barrel_edge": 0.0889,
"hard_hit_edge": 0.2857,
"whiff_edge": -0.4286,
"bb_edge": 0.675,
"pitch_design_score": -0.16
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608379",
"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": 86.99175752354641,
"release_spin_rate": 1982.216780285776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 86.99175752354641,
"release_spin_rate": 1982.216780285776,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 86.9918,
"release_spin_rate": 1982.2168,
"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.16,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1428,
"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.0493,
"sample_weight": 1.0,
"run_prevention_factor": 0.9958,
"strikeout_factor": 0.9714,
"walk_factor": 0.946,
"homer_factor": 0.9746,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608379",
"espn_id": 32640,
"player_name": "Michael Wacha",
"team": "KC",
"role": "pitcher",
"espn_rank": 14,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 14,
"gp_value": 29.0,
"gp_rank": "244",
"gs_value": 29.0,
"gs_rank": "14",
"qs_value": 20.0,
"qs_rank": "2",
"era_value": 3.2518,
"era_rank": 17.0,
"w_value": 9.0,
"w_rank": "44",
"l_value": 8.0,
"l_rank": "64",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 182.2,
"ip_rank": "3",
"h_value": 154.0,
"h_rank": "15",
"er_value": 66.0,
"er_rank": "49",
"hr_value": 24.0,
"hr_rank": "15",
"bb_value": 48.0,
"bb_rank": "51",
"k_value": 147.0,
"k_rank": "35",
"k_per_9_value": 7.2427006,
"k_per_9_rank": 315.0,
"whip_value": 1.1058,
"whip_rank": 16.0,
"war_value": 4.11,
"war_rank": 12.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9958,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9958,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.946,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9746,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9714,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 5,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 127,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +3."
},
{
"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/20260915_KC@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"
}
} |
| 20260915 | 20260915_KC@HOU | home | Hunter Brown | Hunter Brown | True | 5.2 | 5.0 | -2 | 1 | 1 | 0 | 3/2 | 1/3 | 4/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.5217391304347827,
"WHIP": 1.3043478260869565,
"IP": 92.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.412,
"recent_avg_IP": 5.667,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4086,
"sample_weight": 1.0,
"run_prevention_factor": 0.9653,
"strikeout_factor": 1.0269,
"walk_factor": 1.054,
"homer_factor": 0.9587,
"regression_flag": "neutral",
"k_percent": 25.9,
"bb_percent": 11.9,
"woba": 0.303,
"xwoba": 0.285,
"barrel_percent": 6.4,
"hard_hit_percent": 36.9,
"whiff_percent": 25.8
},
"espn_rank": {
"rank": 99,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686613",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 10.0,
"R": 11.0,
"H": 28.0,
"BB": 11.0,
"SO": 33.0,
"HR": 3.0,
"BF": 117.0,
"Pitches": 484.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.2,
"H": 5.6,
"BB": 2.2,
"SO": 6.6,
"HR": 0.6,
"BF": 23.4,
"Pitches": 96.8
},
"rates": {
"ERA": 3.1765,
"WHIP": 1.3765,
"ER_per_IP": 0.35294,
"H_per_IP": 0.98824,
"BB_per_IP": 0.38824,
"SO_per_IP": 1.16471,
"HR_per_IP": 0.10588
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 22.0,
"R": 23.0,
"H": 47.0,
"BB": 24.0,
"SO": 61.0,
"HR": 6.0,
"BF": 233.0,
"Pitches": 952.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.3,
"H": 4.7,
"BB": 2.4,
"SO": 6.1,
"HR": 0.6,
"BF": 23.3,
"Pitches": 95.2
},
"rates": {
"ERA": 3.4941,
"WHIP": 1.2529,
"ER_per_IP": 0.38824,
"H_per_IP": 0.82941,
"BB_per_IP": 0.42353,
"SO_per_IP": 1.07647,
"HR_per_IP": 0.10588
}
},
"season": {
"games": 17,
"totals": {
"IP": 92.0,
"ER": 36.0,
"R": 39.0,
"H": 74.0,
"BB": 46.0,
"SO": 100.0,
"HR": 11.0,
"BF": 386.0,
"Pitches": 1592.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1176,
"R": 2.2941,
"H": 4.3529,
"BB": 2.7059,
"SO": 5.8824,
"HR": 0.6471,
"BF": 22.7059,
"Pitches": 93.6471
},
"rates": {
"ERA": 3.5217,
"WHIP": 1.3043,
"ER_per_IP": 0.3913,
"H_per_IP": 0.80435,
"BB_per_IP": 0.5,
"SO_per_IP": 1.08696,
"HR_per_IP": 0.11957
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.266,
"predicted_H": 5.134,
"predicted_BB": 2.313,
"predicted_SO": 6.052,
"predicted_HR": 0.659,
"predicted_ERA": 3.6324,
"predicted_WHIP": 1.3261
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.266,
"final": 1.7013,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.134,
"final": 4.1822,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.313,
"final": 1.7274,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.052,
"final": 5.1367,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.659,
"final": 0.8111,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6324,
"final": 3.6324,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3261,
"final": 1.3261,
"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": 22,
"H": 47,
"BB": 24,
"SO": 61,
"HR": 6,
"ERA": 3.4941176470588236,
"WHIP": 1.2529411764705882,
"K9": 9.688235294117648,
"HR9": 0.9529411764705883,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8897769733501812,
"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": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686613",
"player_name": "Hunter Brown",
"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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.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": "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": 1.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "HOU",
"games": 150,
"wins": 75,
"losses": 75,
"win_pct": 0.5,
"runs_scored": 669.0,
"runs_allowed": 722.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3533,
"avg_runs_scored": 4.46,
"avg_runs_allowed": 4.8133,
"offense_index": 0.9937,
"defense_index": 0.9325,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.7,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.0783
},
"opponent": {
"team": "KC",
"games": 150,
"wins": 66,
"losses": 84,
"win_pct": 0.44,
"runs_scored": 634.0,
"runs_allowed": 728.0,
"run_differential": -94.0,
"run_differential_per_game": -0.6267,
"avg_runs_scored": 4.2267,
"avg_runs_allowed": 4.8533,
"offense_index": 0.9417,
"defense_index": 0.9248,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.0,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1628
},
"edges": {
"quality_edge": 0.0845,
"offense_edge": -0.0063,
"opponent_offense_edge": -0.0583,
"defense_strength": -0.0675,
"opponent_defense_weakness": 0.0752,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0037,
"run_prevention": 0.9932,
"strikeout": 1.0072
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686613",
"profile": {
"available": true,
"pitcher_id": "686613",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 365.0,
"k_percent": 25.9,
"bb_percent": 11.9,
"woba": 0.303,
"xwoba": 0.285,
"sweet_spot_percent": 27.5,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 36.9,
"avg_best_speed": 74.1882,
"avg_hyper_speed": 93.1755,
"whiff_percent": 25.8,
"swing_percent": 42.1
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5457,
"command_and_miss": 0.1557,
"regression_edge": 0.5143,
"xwoba_edge": 0.7714,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.1429,
"whiff_edge": 0.1143,
"bb_edge": -0.675,
"pitch_design_score": 0.1387
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686613",
"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": 92.32550813368526,
"release_spin_rate": 2201.6439490261128,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.32550813368526,
"release_spin_rate": 2201.6439490261128,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3255,
"release_spin_rate": 2201.6439,
"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.1387,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9907,
"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.4086,
"sample_weight": 1.0,
"run_prevention_factor": 0.9653,
"strikeout_factor": 1.0269,
"walk_factor": 1.054,
"homer_factor": 0.9587,
"woba_minus_xwoba": 0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "686613",
"espn_id": 4717803,
"player_name": "Hunter Brown",
"team": "HOU",
"role": "pitcher",
"espn_rank": 99,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 99,
"gp_value": 17.0,
"gp_rank": "438",
"gs_value": 17.0,
"gs_rank": "126",
"qs_value": 7.0,
"qs_rank": "82",
"era_value": 3.5217,
"era_rank": null,
"w_value": 5.0,
"w_rank": "150",
"l_value": 3.0,
"l_rank": "245",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 92.0,
"ip_rank": "139",
"h_value": 74.0,
"h_rank": "157",
"er_value": 36.0,
"er_rank": "165",
"hr_value": 11.0,
"hr_rank": "150",
"bb_value": 46.0,
"bb_rank": "59",
"k_value": 100.0,
"k_rank": "105",
"k_per_9_value": 9.782609,
"k_per_9_rank": 20.0,
"whip_value": 1.3043,
"whip_rank": null,
"war_value": 1.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9653,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9653,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.054,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9587,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0269,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260915_KC@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"
}
} |
| 20260915 | 20260915_LAD@CIN | away | Yoshinobu Yamamoto | Yoshinobu Yamamoto | True | 7.0 | 7.0 | 0 | 2 | 0 | -2 | 3/1 | 1/2 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.616279069767442,
"WHIP": 0.8837209302325582,
"IP": 172.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.615,
"recent_avg_IP": 6.533,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5855,
"sample_weight": 1.0,
"run_prevention_factor": 0.9502,
"strikeout_factor": 1.0389,
"walk_factor": 0.934,
"homer_factor": 0.9518,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 5.9,
"woba": 0.246,
"xwoba": 0.27,
"barrel_percent": 6.8,
"hard_hit_percent": 36.7,
"whiff_percent": 27.8
},
"espn_rank": {
"rank": 8,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "808967",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 7.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.2,
"ER": 9.0,
"R": 9.0,
"H": 21.0,
"BB": 7.0,
"SO": 44.0,
"HR": 4.0,
"BF": 125.0,
"Pitches": 492.0
},
"per_game": {
"IP": 6.2,
"ER": 1.8,
"R": 1.8,
"H": 4.2,
"BB": 1.4,
"SO": 8.8,
"HR": 0.8,
"BF": 25.0,
"Pitches": 98.4
},
"rates": {
"ERA": 2.4796,
"WHIP": 0.8571,
"ER_per_IP": 0.27551,
"H_per_IP": 0.64286,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.34694,
"HR_per_IP": 0.12245
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 67.1,
"ER": 21.0,
"R": 21.0,
"H": 42.0,
"BB": 18.0,
"SO": 71.0,
"HR": 8.0,
"BF": 260.0,
"Pitches": 1000.0
},
"per_game": {
"IP": 6.2,
"ER": 2.1,
"R": 2.1,
"H": 4.2,
"BB": 1.8,
"SO": 7.1,
"HR": 0.8,
"BF": 26.0,
"Pitches": 100.0
},
"rates": {
"ERA": 2.8069,
"WHIP": 0.8911,
"ER_per_IP": 0.31188,
"H_per_IP": 0.62376,
"BB_per_IP": 0.26733,
"SO_per_IP": 1.05446,
"HR_per_IP": 0.11881
}
},
"season": {
"games": 26,
"totals": {
"IP": 172.0,
"ER": 50.0,
"R": 51.0,
"H": 113.0,
"BB": 39.0,
"SO": 171.0,
"HR": 19.0,
"BF": 658.0,
"Pitches": 2555.0
},
"per_game": {
"IP": 6.2,
"ER": 1.9231,
"R": 1.9615,
"H": 4.3462,
"BB": 1.5,
"SO": 6.5769,
"HR": 0.7308,
"BF": 25.3077,
"Pitches": 98.2692
},
"rates": {
"ERA": 2.6163,
"WHIP": 0.8837,
"ER_per_IP": 0.2907,
"H_per_IP": 0.65698,
"BB_per_IP": 0.22674,
"SO_per_IP": 0.99419,
"HR_per_IP": 0.11047
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 2.192,
"predicted_H": 4.66,
"predicted_BB": 1.732,
"predicted_SO": 7.636,
"predicted_HR": 0.829,
"predicted_ERA": 2.9358,
"predicted_WHIP": 0.9512
}
},
"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": 7.0,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.192,
"final": 2.1117,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.66,
"final": 3.9659,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.732,
"final": 1.4259,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 7.636,
"final": 6.5338,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.829,
"final": 0.4824,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9358,
"final": 2.9358,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9512,
"final": 0.9512,
"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": 67.1,
"ER": 21,
"H": 42,
"BB": 18,
"SO": 71,
"HR": 8,
"ERA": 2.806930693069307,
"WHIP": 0.8910891089108911,
"K9": 9.490099009900991,
"HR9": 1.0693069306930694,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8034221393373682,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 7.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": 7.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808967",
"player_name": "Yoshinobu Yamamoto",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 7.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 7.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 7.0,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 8.0,
"delta": 3.0,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 150,
"wins": 91,
"losses": 59,
"win_pct": 0.6067,
"runs_scored": 745.0,
"runs_allowed": 572.0,
"run_differential": 173.0,
"run_differential_per_game": 1.1533,
"avg_runs_scored": 4.9667,
"avg_runs_allowed": 3.8133,
"offense_index": 1.1054,
"defense_index": 1.1783,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.2,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.3369
},
"opponent": {
"team": "CIN",
"games": 150,
"wins": 70,
"losses": 80,
"win_pct": 0.4667,
"runs_scored": 625.0,
"runs_allowed": 773.0,
"run_differential": -148.0,
"run_differential_per_game": -0.9867,
"avg_runs_scored": 4.1667,
"avg_runs_allowed": 5.1533,
"offense_index": 0.9273,
"defense_index": 0.8719,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 8.4,
"run_differential": -40.0
},
"available": true,
"quality_score": -0.2191
},
"edges": {
"quality_edge": 0.556,
"offense_edge": 0.1054,
"opponent_offense_edge": -0.0727,
"defense_strength": 0.1783,
"opponent_defense_weakness": 0.1281,
"recent_win_pct_edge": 0.5
},
"player_factors": {
"ip": 1.0305,
"run_prevention": 0.9427,
"strikeout": 1.0225
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808967",
"profile": {
"available": true,
"pitcher_id": "808967",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 632.0,
"k_percent": 26.0,
"bb_percent": 5.9,
"woba": 0.246,
"xwoba": 0.27,
"sweet_spot_percent": 29.6,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 36.7,
"avg_best_speed": 76.4318,
"avg_hyper_speed": 93.9283,
"whiff_percent": 27.8,
"swing_percent": 49.4
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8968,
"command_and_miss": 0.5621,
"regression_edge": -0.6857,
"xwoba_edge": 1.2,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.1714,
"whiff_edge": 0.4,
"bb_edge": 0.825,
"pitch_design_score": 0.0715
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808967",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 91.12649125856004,
"release_spin_rate": 2171.345309333937,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 101,
"pitch_usage": 0.0,
"release_speed": 91.12649125856004,
"release_spin_rate": 2171.345309333937,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1265,
"release_spin_rate": 2171.3453,
"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.0715,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5111,
"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.5855,
"sample_weight": 1.0,
"run_prevention_factor": 0.9502,
"strikeout_factor": 1.0389,
"walk_factor": 0.934,
"homer_factor": 0.9518,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "808967",
"espn_id": 4872587,
"player_name": "Yoshinobu Yamamoto",
"team": "LAD",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 8,
"gp_value": 26.0,
"gp_rank": "313",
"gs_value": 26.0,
"gs_rank": "56",
"qs_value": 20.0,
"qs_rank": "2",
"era_value": 2.6162,
"era_rank": 7.0,
"w_value": 13.0,
"w_rank": "12",
"l_value": 8.0,
"l_rank": "64",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 172.0,
"ip_rank": "9",
"h_value": 113.0,
"h_rank": "97",
"er_value": 50.0,
"er_rank": "106",
"hr_value": 19.0,
"hr_rank": "52",
"bb_value": 39.0,
"bb_rank": "96",
"k_value": 171.0,
"k_rank": "20",
"k_per_9_value": 8.947675,
"k_per_9_rank": 60.0,
"whip_value": 0.8837,
"whip_rank": 2.0,
"war_value": 5.37,
"war_rank": 9.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9502,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9502,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.934,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9518,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0389,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 7.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 25,
"Pitches": 106,
"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/20260915_LAD@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"
}
} |
| 20260915 | 20260915_LAD@CIN | home | Rhett Lowder | Rhett Lowder | True | 4.2 | 5.0 | 1 | 3 | 3 | 0 | 6/5 | 1/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.807262569832402,
"WHIP": 1.5251396648044693,
"IP": 119.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 4.884,
"recent_avg_IP": 5.0,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6167,
"sample_weight": 1.0,
"run_prevention_factor": 1.0524,
"strikeout_factor": 0.9371,
"walk_factor": 0.998,
"homer_factor": 1.0895,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 9.1,
"woba": 0.35,
"xwoba": 0.351,
"barrel_percent": 9.9,
"hard_hit_percent": 39.0,
"whiff_percent": 18.6
},
"espn_rank": {
"rank": 480,
"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": "695076",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.0,
"ER": 23.0,
"R": 25.0,
"H": 33.0,
"BB": 9.0,
"SO": 17.0,
"HR": 5.0,
"BF": 118.0,
"Pitches": 463.0
},
"per_game": {
"IP": 5.0,
"ER": 4.6,
"R": 5.0,
"H": 6.6,
"BB": 1.8,
"SO": 3.4,
"HR": 1.0,
"BF": 23.6,
"Pitches": 92.6
},
"rates": {
"ERA": 8.28,
"WHIP": 1.68,
"ER_per_IP": 0.92,
"H_per_IP": 1.32,
"BB_per_IP": 0.36,
"SO_per_IP": 0.68,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 39.0,
"R": 41.0,
"H": 61.0,
"BB": 14.0,
"SO": 35.0,
"HR": 8.0,
"BF": 224.0,
"Pitches": 866.0
},
"per_game": {
"IP": 5.0,
"ER": 3.9,
"R": 4.1,
"H": 6.1,
"BB": 1.4,
"SO": 3.5,
"HR": 0.8,
"BF": 22.4,
"Pitches": 86.6
},
"rates": {
"ERA": 7.0671,
"WHIP": 1.5101,
"ER_per_IP": 0.78523,
"H_per_IP": 1.22819,
"BB_per_IP": 0.28188,
"SO_per_IP": 0.7047,
"HR_per_IP": 0.16107
}
},
"season": {
"games": 26,
"totals": {
"IP": 119.1,
"ER": 77.0,
"R": 80.0,
"H": 133.0,
"BB": 49.0,
"SO": 94.0,
"HR": 17.0,
"BF": 541.0,
"Pitches": 2066.0
},
"per_game": {
"IP": 4.2,
"ER": 2.9615,
"R": 3.0769,
"H": 5.1154,
"BB": 1.8846,
"SO": 3.6154,
"HR": 0.6538,
"BF": 20.8077,
"Pitches": 79.4615
},
"rates": {
"ERA": 5.8073,
"WHIP": 1.5251,
"ER_per_IP": 0.64525,
"H_per_IP": 1.11453,
"BB_per_IP": 0.41061,
"SO_per_IP": 0.78771,
"HR_per_IP": 0.14246
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.796,
"predicted_H": 5.949,
"predicted_BB": 1.72,
"predicted_SO": 3.694,
"predicted_HR": 0.843,
"predicted_ERA": 6.9107,
"predicted_WHIP": 1.551
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 3.796,
"final": 3.8813,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.949,
"final": 5.5522,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.72,
"final": 1.4189,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.694,
"final": 4.2401,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.843,
"final": 0.9086,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.9107,
"final": 6.9107,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.551,
"final": 1.551,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 39,
"H": 61,
"BB": 14,
"SO": 35,
"HR": 8,
"ERA": 7.067114093959731,
"WHIP": 1.5100671140939597,
"K9": 6.342281879194631,
"HR9": 1.4496644295302012,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 1.2981672220671174,
"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": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"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": 4,
"predicted_H": 5,
"predicted_BB": 1,
"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": 4.2,
"predicted_ER": 4,
"predicted_H": 6,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695076",
"player_name": "Rhett Lowder",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.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": 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": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"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.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 4.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": 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.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"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": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.2,
"delta": -0.8,
"percent_delta": -0.16,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 150,
"wins": 70,
"losses": 80,
"win_pct": 0.4667,
"runs_scored": 625.0,
"runs_allowed": 773.0,
"run_differential": -148.0,
"run_differential_per_game": -0.9867,
"avg_runs_scored": 4.1667,
"avg_runs_allowed": 5.1533,
"offense_index": 0.9273,
"defense_index": 0.8719,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 8.4,
"run_differential": -40.0
},
"available": true,
"quality_score": -0.2191
},
"opponent": {
"team": "LAD",
"games": 150,
"wins": 91,
"losses": 59,
"win_pct": 0.6067,
"runs_scored": 745.0,
"runs_allowed": 572.0,
"run_differential": 173.0,
"run_differential_per_game": 1.1533,
"avg_runs_scored": 4.9667,
"avg_runs_allowed": 3.8133,
"offense_index": 1.1054,
"defense_index": 1.1783,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.2,
"run_differential": 26.0
},
"available": true,
"quality_score": 0.3369
},
"edges": {
"quality_edge": -0.556,
"offense_edge": -0.0727,
"opponent_offense_edge": 0.1054,
"defense_strength": -0.1281,
"opponent_defense_weakness": -0.1783,
"recent_win_pct_edge": -0.5
},
"player_factors": {
"ip": 0.9697,
"run_prevention": 1.0575,
"strikeout": 0.9749
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695076",
"profile": {
"available": true,
"pitcher_id": "695076",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 511.0,
"k_percent": 17.4,
"bb_percent": 9.1,
"woba": 0.35,
"xwoba": 0.351,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 39.0,
"avg_best_speed": 79.8155,
"avg_hyper_speed": 94.3464,
"whiff_percent": 18.6,
"swing_percent": 44.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8084,
"command_and_miss": -0.6107,
"regression_edge": -0.0286,
"xwoba_edge": -1.1143,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.1571,
"whiff_edge": -0.9143,
"bb_edge": 0.025,
"pitch_design_score": -0.0292
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695076",
"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.3270357792148,
"release_spin_rate": 2349.6648334365336,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3270357792148,
"release_spin_rate": 2349.6648334365336,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.327,
"release_spin_rate": 2349.6648,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0292,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2087,
"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.6167,
"sample_weight": 1.0,
"run_prevention_factor": 1.0524,
"strikeout_factor": 0.9371,
"walk_factor": 0.998,
"homer_factor": 1.0895,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695076",
"espn_id": 4758873,
"player_name": "Rhett Lowder",
"team": "CIN",
"role": "pitcher",
"espn_rank": 480,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 480,
"gp_value": 26.0,
"gp_rank": "313",
"gs_value": 23.0,
"gs_rank": "81",
"qs_value": 6.0,
"qs_rank": "93",
"era_value": 5.8072,
"era_rank": null,
"w_value": 6.0,
"w_rank": "109",
"l_value": 10.0,
"l_rank": "21",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 119.1,
"ip_rank": "93",
"h_value": 133.0,
"h_rank": "57",
"er_value": 77.0,
"er_rank": "18",
"hr_value": 17.0,
"hr_rank": "74",
"bb_value": 49.0,
"bb_rank": "47",
"k_value": 94.0,
"k_rank": "123",
"k_per_9_value": 7.0893855,
"k_per_9_rank": 35.0,
"whip_value": 1.5251,
"whip_rank": null,
"war_value": 0.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0524,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 1.0524,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.998,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0895,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9371,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260915_LAD@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"
}
} |
| 20260915 | 20260915_MIA@ARI | away | Janson Junk | Janson Junk | True | 4.2 | 3.0 | -5 | 3 | 1 | -2 | 5/5 | 2/1 | 8/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.54054054054054,
"WHIP": 1.3243243243243243,
"IP": 111.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.0,
"recent_avg_IP": 4.467,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2901,
"sample_weight": 1.0,
"run_prevention_factor": 1.0247,
"strikeout_factor": 0.9057,
"walk_factor": 0.944,
"homer_factor": 1.0144,
"regression_flag": "neutral",
"k_percent": 15.7,
"bb_percent": 6.4,
"woba": 0.325,
"xwoba": 0.321,
"barrel_percent": 6.9,
"hard_hit_percent": 39.7,
"whiff_percent": 14.8
},
"espn_rank": {
"rank": 258,
"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": "676083",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 11.0,
"R": 11.0,
"H": 17.0,
"BB": 4.0,
"SO": 8.0,
"HR": 1.0,
"BF": 76.0,
"Pitches": 277.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.2,
"H": 3.4,
"BB": 0.8,
"SO": 1.6,
"HR": 0.2,
"BF": 15.2,
"Pitches": 55.4
},
"rates": {
"ERA": 5.4,
"WHIP": 1.1455,
"ER_per_IP": 0.6,
"H_per_IP": 0.92727,
"BB_per_IP": 0.21818,
"SO_per_IP": 0.43636,
"HR_per_IP": 0.05455
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.0,
"ER": 17.0,
"R": 19.0,
"H": 44.0,
"BB": 10.0,
"SO": 23.0,
"HR": 2.0,
"BF": 177.0,
"Pitches": 647.0
},
"per_game": {
"IP": 4.1,
"ER": 1.7,
"R": 1.9,
"H": 4.4,
"BB": 1.0,
"SO": 2.3,
"HR": 0.2,
"BF": 17.7,
"Pitches": 64.7
},
"rates": {
"ERA": 3.6429,
"WHIP": 1.2857,
"ER_per_IP": 0.40476,
"H_per_IP": 1.04762,
"BB_per_IP": 0.2381,
"SO_per_IP": 0.54762,
"HR_per_IP": 0.04762
}
},
"season": {
"games": 23,
"totals": {
"IP": 111.0,
"ER": 56.0,
"R": 61.0,
"H": 117.0,
"BB": 30.0,
"SO": 74.0,
"HR": 13.0,
"BF": 472.0,
"Pitches": 1761.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4348,
"R": 2.6522,
"H": 5.087,
"BB": 1.3043,
"SO": 3.2174,
"HR": 0.5652,
"BF": 20.5217,
"Pitches": 76.5652
},
"rates": {
"ERA": 4.5405,
"WHIP": 1.3243,
"ER_per_IP": 0.5045,
"H_per_IP": 1.05405,
"BB_per_IP": 0.27027,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.11712
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.15,
"predicted_H": 4.166,
"predicted_BB": 1.094,
"predicted_SO": 2.504,
"predicted_HR": 0.334,
"predicted_ERA": 4.6054,
"predicted_WHIP": 1.2518
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.15,
"final": 2.5116,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.166,
"final": 4.5208,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.094,
"final": 1.4795,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 2.504,
"final": 4.8423,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.334,
"final": 0.6174,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6054,
"final": 4.6054,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2518,
"final": 1.2518,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.0,
"ER": 17,
"H": 44,
"BB": 10,
"SO": 23,
"HR": 2,
"ERA": 3.642857142857143,
"WHIP": 1.2857142857142858,
"K9": 4.928571428571429,
"HR9": 0.42857142857142855,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.9073294943585846,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676083",
"player_name": "Janson Junk",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 3.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.2,
"delta": -0.4667,
"percent_delta": -0.1,
"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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.2,
"delta": -0.4667,
"percent_delta": -0.1,
"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": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIA",
"games": 151,
"wins": 74,
"losses": 77,
"win_pct": 0.4901,
"runs_scored": 673.0,
"runs_allowed": 668.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0331,
"avg_runs_scored": 4.457,
"avg_runs_allowed": 4.4238,
"offense_index": 0.9905,
"defense_index": 1.0172,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 6.7,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0744
},
"opponent": {
"team": "ARI",
"games": 151,
"wins": 80,
"losses": 71,
"win_pct": 0.5298,
"runs_scored": 673.0,
"runs_allowed": 670.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0199,
"avg_runs_scored": 4.457,
"avg_runs_allowed": 4.4371,
"offense_index": 0.9905,
"defense_index": 1.0141,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.1,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0628
},
"edges": {
"quality_edge": -0.1372,
"offense_edge": -0.0095,
"opponent_offense_edge": -0.0095,
"defense_strength": 0.0172,
"opponent_defense_weakness": -0.0141,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9954,
"run_prevention": 1.0036,
"strikeout": 0.9966
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676083",
"profile": {
"available": true,
"pitcher_id": "676083",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 429.0,
"k_percent": 15.7,
"bb_percent": 6.4,
"woba": 0.325,
"xwoba": 0.321,
"sweet_spot_percent": 30.3,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 39.7,
"avg_best_speed": 79.6222,
"avg_hyper_speed": 94.5091,
"whiff_percent": 14.8,
"swing_percent": 48.3
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1643,
"command_and_miss": -0.775,
"regression_edge": 0.1143,
"xwoba_edge": -0.2571,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.2571,
"whiff_edge": -1.4571,
"bb_edge": 0.7,
"pitch_design_score": -0.1
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676083",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 61,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 88.0636300355679,
"release_spin_rate": 2228.8575529472328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 61,
"pitch_usage": 0.0,
"release_speed": 88.0636300355679,
"release_spin_rate": 2228.8575529472328,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0636,
"release_spin_rate": 2228.8576,
"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.1,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7141,
"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.2901,
"sample_weight": 1.0,
"run_prevention_factor": 1.0247,
"strikeout_factor": 0.9057,
"walk_factor": 0.944,
"homer_factor": 1.0144,
"woba_minus_xwoba": 0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676083",
"espn_id": 4881980,
"player_name": "Janson Junk",
"team": "MIA",
"role": "pitcher",
"espn_rank": 258,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 258,
"gp_value": 23.0,
"gp_rank": "353",
"gs_value": 22.0,
"gs_rank": "88",
"qs_value": 3.0,
"qs_rank": "141",
"era_value": 4.5405,
"era_rank": null,
"w_value": 6.0,
"w_rank": "109",
"l_value": 9.0,
"l_rank": "32",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 1.0,
"hld_rank": "272",
"ip_value": 111.0,
"ip_rank": "108",
"h_value": 117.0,
"h_rank": "87",
"er_value": 56.0,
"er_rank": "89",
"hr_value": 13.0,
"hr_rank": "127",
"bb_value": 30.0,
"bb_rank": "176",
"k_value": 74.0,
"k_rank": "172",
"k_per_9_value": 6.0,
"k_per_9_rank": 43.0,
"whip_value": 1.3243,
"whip_rank": null,
"war_value": 0.52,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0247,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0247,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0144,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9057,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260915_MIA@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_MIA@ARI | home | Michael Soroka | Michael Soroka | True | 5.0 | 5.0 | 0 | 1 | 1 | 0 | 1/2 | 1/1 | 3/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.533557046979866,
"WHIP": 1.1577181208053693,
"IP": 99.1,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 5.296,
"recent_avg_IP": 4.267,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0641,
"sample_weight": 1.0,
"run_prevention_factor": 1.0055,
"strikeout_factor": 0.9891,
"walk_factor": 0.938,
"homer_factor": 1.0015,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 6.1,
"woba": 0.291,
"xwoba": 0.319,
"barrel_percent": 8.1,
"hard_hit_percent": 34.0,
"whiff_percent": 22.0
},
"espn_rank": {
"rank": 96,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "647336",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.1,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 8.0,
"SO": 16.0,
"HR": 1.0,
"BF": 82.0,
"Pitches": 308.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.6,
"SO": 3.2,
"HR": 0.2,
"BF": 16.4,
"Pitches": 61.6
},
"rates": {
"ERA": 5.4,
"WHIP": 1.5273,
"ER_per_IP": 0.6,
"H_per_IP": 1.09091,
"BB_per_IP": 0.43636,
"SO_per_IP": 0.87273,
"HR_per_IP": 0.05455
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 20.0,
"R": 20.0,
"H": 39.0,
"BB": 11.0,
"SO": 40.0,
"HR": 3.0,
"BF": 201.0,
"Pitches": 762.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 3.9,
"BB": 1.1,
"SO": 4.0,
"HR": 0.3,
"BF": 20.1,
"Pitches": 76.2
},
"rates": {
"ERA": 3.5762,
"WHIP": 0.9934,
"ER_per_IP": 0.39735,
"H_per_IP": 0.77483,
"BB_per_IP": 0.21854,
"SO_per_IP": 0.7947,
"HR_per_IP": 0.0596
}
},
"season": {
"games": 19,
"totals": {
"IP": 99.1,
"ER": 39.0,
"R": 39.0,
"H": 90.0,
"BB": 25.0,
"SO": 95.0,
"HR": 7.0,
"BF": 411.0,
"Pitches": 1589.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0526,
"R": 2.0526,
"H": 4.7368,
"BB": 1.3158,
"SO": 5.0,
"HR": 0.3684,
"BF": 21.6316,
"Pitches": 83.6316
},
"rates": {
"ERA": 3.5336,
"WHIP": 1.1577,
"ER_per_IP": 0.39262,
"H_per_IP": 0.90604,
"BB_per_IP": 0.25168,
"SO_per_IP": 0.95638,
"HR_per_IP": 0.07047
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.251,
"predicted_H": 4.35,
"predicted_BB": 1.528,
"predicted_SO": 4.021,
"predicted_HR": 0.356,
"predicted_ERA": 4.4262,
"predicted_WHIP": 1.2841
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.251,
"final": 1.7031,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.35,
"final": 2.8827,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.528,
"final": 1.2967,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.021,
"final": 3.5738,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.356,
"final": 0.2001,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4262,
"final": 4.4262,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2841,
"final": 1.2841,
"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": 20,
"H": 39,
"BB": 11,
"SO": 40,
"HR": 3,
"ERA": 3.5761589403973506,
"WHIP": 0.9933774834437086,
"K9": 7.152317880794701,
"HR9": 0.5364238410596026,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8925175265250935,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 1.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "647336",
"player_name": "Michael Soroka",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 151,
"wins": 80,
"losses": 71,
"win_pct": 0.5298,
"runs_scored": 673.0,
"runs_allowed": 670.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0199,
"avg_runs_scored": 4.457,
"avg_runs_allowed": 4.4371,
"offense_index": 0.9905,
"defense_index": 1.0141,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.1,
"run_differential": 4.0
},
"available": true,
"quality_score": 0.0628
},
"opponent": {
"team": "MIA",
"games": 151,
"wins": 74,
"losses": 77,
"win_pct": 0.4901,
"runs_scored": 673.0,
"runs_allowed": 668.0,
"run_differential": 5.0,
"run_differential_per_game": 0.0331,
"avg_runs_scored": 4.457,
"avg_runs_allowed": 4.4238,
"offense_index": 0.9905,
"defense_index": 1.0172,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 6.7,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.0744
},
"edges": {
"quality_edge": 0.1372,
"offense_edge": -0.0095,
"opponent_offense_edge": -0.0095,
"defense_strength": 0.0141,
"opponent_defense_weakness": -0.0172,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9902,
"strikeout": 1.0049
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "647336",
"profile": {
"available": true,
"pitcher_id": "647336",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 390.0,
"k_percent": 23.1,
"bb_percent": 6.1,
"woba": 0.291,
"xwoba": 0.319,
"sweet_spot_percent": 37.9,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 34.0,
"avg_best_speed": 76.8716,
"avg_hyper_speed": 93.4814,
"whiff_percent": 22.0,
"swing_percent": 49.4
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0098,
"command_and_miss": 0.0757,
"regression_edge": -0.8,
"xwoba_edge": -0.2,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.5571,
"whiff_edge": -0.4286,
"bb_edge": 0.775,
"pitch_design_score": -0.1166
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "647336",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 68,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 87.76748758429557,
"release_spin_rate": 2593.7909192428456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 68,
"pitch_usage": 0.0,
"release_speed": 87.76748758429557,
"release_spin_rate": 2593.7909192428456,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7675,
"release_spin_rate": 2593.7909,
"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.1166,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.8325,
"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.0641,
"sample_weight": 1.0,
"run_prevention_factor": 1.0055,
"strikeout_factor": 0.9891,
"walk_factor": 0.938,
"homer_factor": 1.0015,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "647336",
"espn_id": 34984,
"player_name": "Michael Soroka",
"team": "ARI",
"role": "pitcher",
"espn_rank": 96,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 96,
"gp_value": 19.0,
"gp_rank": "407",
"gs_value": 18.0,
"gs_rank": "114",
"qs_value": 7.0,
"qs_rank": "82",
"era_value": 3.5335,
"era_rank": null,
"w_value": 8.0,
"w_rank": "67",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 99.1,
"ip_rank": "128",
"h_value": 90.0,
"h_rank": "128",
"er_value": 39.0,
"er_rank": "155",
"hr_value": 7.0,
"hr_rank": "228",
"bb_value": 25.0,
"bb_rank": "221",
"k_value": 95.0,
"k_rank": "119",
"k_per_9_value": 8.607383,
"k_per_9_rank": 25.0,
"whip_value": 1.1577,
"whip_rank": null,
"war_value": 1.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0055,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0055,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0015,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9891,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 74,
"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/20260915_MIA@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_MIL@PIT | away | Jacob Misiorowski | Jacob Misiorowski | True | 6.0 | 5.0 | -3 | 2 | 0 | -2 | 5/5 | 4/1 | 7/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.952479338842975,
"WHIP": 0.7995867768595041,
"IP": 161.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.975,
"recent_avg_IP": 5.667,
"last_start_IP": 6.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 1.3803,
"sample_weight": 1.0,
"run_prevention_factor": 0.8827,
"strikeout_factor": 1.16,
"walk_factor": 0.95,
"homer_factor": 0.8423,
"regression_flag": "neutral",
"k_percent": 38.3,
"bb_percent": 6.7,
"woba": 0.218,
"xwoba": 0.225,
"barrel_percent": 3.9,
"hard_hit_percent": 33.3,
"whiff_percent": 37.4
},
"espn_rank": {
"rank": 6,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 161.1,
"season_ERA": 1.952,
"season_WHIP": 0.8,
"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": "694819",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 9.0,
"R": 9.0,
"H": 20.0,
"BB": 11.0,
"SO": 32.0,
"HR": 1.0,
"BF": 113.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.0,
"BB": 2.2,
"SO": 6.4,
"HR": 0.2,
"BF": 22.6,
"Pitches": 93.6
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.0941,
"ER_per_IP": 0.31765,
"H_per_IP": 0.70588,
"BB_per_IP": 0.38824,
"SO_per_IP": 1.12941,
"HR_per_IP": 0.03529
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.1,
"ER": 18.0,
"R": 19.0,
"H": 34.0,
"BB": 14.0,
"SO": 80.0,
"HR": 7.0,
"BF": 219.0,
"Pitches": 896.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.9,
"H": 3.4,
"BB": 1.4,
"SO": 8.0,
"HR": 0.7,
"BF": 21.9,
"Pitches": 89.6
},
"rates": {
"ERA": 2.8256,
"WHIP": 0.8372,
"ER_per_IP": 0.31395,
"H_per_IP": 0.59302,
"BB_per_IP": 0.24419,
"SO_per_IP": 1.39535,
"HR_per_IP": 0.12209
}
},
"season": {
"games": 27,
"totals": {
"IP": 161.1,
"ER": 35.0,
"R": 43.0,
"H": 88.0,
"BB": 41.0,
"SO": 236.0,
"HR": 14.0,
"BF": 616.0,
"Pitches": 2453.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2963,
"R": 1.5926,
"H": 3.2593,
"BB": 1.5185,
"SO": 8.7407,
"HR": 0.5185,
"BF": 22.8148,
"Pitches": 90.8519
},
"rates": {
"ERA": 1.9525,
"WHIP": 0.7996,
"ER_per_IP": 0.21694,
"H_per_IP": 0.54545,
"BB_per_IP": 0.25413,
"SO_per_IP": 1.46281,
"HR_per_IP": 0.08678
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.901,
"predicted_H": 3.972,
"predicted_BB": 1.853,
"predicted_SO": 7.13,
"predicted_HR": 0.503,
"predicted_ERA": 2.9633,
"predicted_WHIP": 1.0086
}
},
"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": 1.901,
"final": 1.9422,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 3.972,
"final": 4.3996,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.853,
"final": 2.7461,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 7.13,
"final": 5.4119,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.503,
"final": 0.2938,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.9633,
"final": 2.9633,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0086,
"final": 1.0086,
"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.1,
"ER": 18,
"H": 34,
"BB": 14,
"SO": 80,
"HR": 7,
"ERA": 2.8255813953488373,
"WHIP": 0.8372093023255814,
"K9": 12.558139534883722,
"HR9": 1.0988372093023258,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 0.8041733481791825,
"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": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 7.0,
"delta": 4.0,
"percent_delta": 1.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 150,
"wins": 93,
"losses": 57,
"win_pct": 0.62,
"runs_scored": 778.0,
"runs_allowed": 583.0,
"run_differential": 195.0,
"run_differential_per_game": 1.3,
"avg_runs_scored": 5.1867,
"avg_runs_allowed": 3.8867,
"offense_index": 1.1548,
"defense_index": 1.1556,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 7.4,
"avg_runs_allowed": 5.1,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.2962
},
"opponent": {
"team": "PIT",
"games": 150,
"wins": 75,
"losses": 75,
"win_pct": 0.5,
"runs_scored": 718.0,
"runs_allowed": 692.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1733,
"avg_runs_scored": 4.7867,
"avg_runs_allowed": 4.6133,
"offense_index": 1.0658,
"defense_index": 0.9736,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0912
},
"edges": {
"quality_edge": 0.205,
"offense_edge": 0.1548,
"opponent_offense_edge": 0.0658,
"defense_strength": 0.1556,
"opponent_defense_weakness": 0.0264,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0102,
"run_prevention": 0.9847,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 590.0,
"k_percent": 38.3,
"bb_percent": 6.7,
"woba": 0.218,
"xwoba": 0.225,
"sweet_spot_percent": 33.6,
"barrel_batted_rate": 3.9,
"hard_hit_percent": 33.3,
"avg_best_speed": 76.2613,
"avg_hyper_speed": 93.0225,
"whiff_percent": 37.4,
"swing_percent": 50.8
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6282,
"command_and_miss": 1.7929,
"regression_edge": -0.2,
"xwoba_edge": 2.4857,
"barrel_edge": 0.7111,
"hard_hit_edge": 0.6571,
"whiff_edge": 1.7714,
"bb_edge": 0.625,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"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": 97.51956322021114,
"release_spin_rate": 2566.3753907068312,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 97.51956322021114,
"release_spin_rate": 2566.3753907068312,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 97.5196,
"release_spin_rate": 2566.3754,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3803,
"sample_weight": 1.0,
"run_prevention_factor": 0.8827,
"strikeout_factor": 1.16,
"walk_factor": 0.95,
"homer_factor": 0.8423,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694819",
"espn_id": 5080761,
"player_name": "Jacob Misiorowski",
"team": "MIL",
"role": "pitcher",
"espn_rank": 6,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 6,
"gp_value": 27.0,
"gp_rank": "297",
"gs_value": 27.0,
"gs_rank": "45",
"qs_value": 18.0,
"qs_rank": "6",
"era_value": 1.9524,
"era_rank": 1.0,
"w_value": 14.0,
"w_rank": "6",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 161.1,
"ip_rank": "30",
"h_value": 88.0,
"h_rank": "130",
"er_value": 35.0,
"er_rank": "168",
"hr_value": 14.0,
"hr_rank": "109",
"bb_value": 41.0,
"bb_rank": "83",
"k_value": 236.0,
"k_rank": "1",
"k_per_9_value": 13.165289,
"k_per_9_rank": null,
"whip_value": 0.7995,
"whip_rank": 1.0,
"war_value": 5.68,
"war_rank": 6.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.8827,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.8827,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.95,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8423,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.16,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 7,
"predicted_HR": 0,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260915_MIL@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"
}
} |
| 20260915 | 20260915_MIL@PIT | home | Lake Bachar | Lake Bachar | True | 5.0 | 2.0 | -9 | 2 | 1 | -1 | 4/3 | 4/2 | 4/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.9495798319327733,
"WHIP": 1.0210084033613447,
"IP": 79.1,
"games_started": null,
"games_pitched": 47,
"role_avg_IP": 2.259,
"recent_avg_IP": 2.267,
"last_start_IP": 1.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3207,
"sample_weight": 1.0,
"run_prevention_factor": 0.9727,
"strikeout_factor": 1.0491,
"walk_factor": 1.02,
"homer_factor": 0.9848,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 10.2,
"woba": 0.286,
"xwoba": 0.29,
"barrel_percent": 8.4,
"hard_hit_percent": 34.5,
"whiff_percent": 30.1
},
"espn_rank": {
"rank": 154,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 79.1,
"season_ERA": 2.95,
"season_WHIP": 1.021,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.065,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7626,
"prior_weight": 0.2374
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669199",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 47,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.2,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 6.0,
"SO": 10.0,
"HR": 1.0,
"BF": 38.0,
"Pitches": 144.0
},
"per_game": {
"IP": 2.0,
"ER": 0.4,
"R": 0.4,
"H": 0.8,
"BB": 1.2,
"SO": 2.0,
"HR": 0.2,
"BF": 7.6,
"Pitches": 28.8
},
"rates": {
"ERA": 1.8621,
"WHIP": 1.0345,
"ER_per_IP": 0.2069,
"H_per_IP": 0.41379,
"BB_per_IP": 0.62069,
"SO_per_IP": 1.03448,
"HR_per_IP": 0.10345
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 20.2,
"ER": 6.0,
"R": 6.0,
"H": 11.0,
"BB": 12.0,
"SO": 22.0,
"HR": 4.0,
"BF": 83.0,
"Pitches": 344.0
},
"per_game": {
"IP": 2.0,
"ER": 0.6,
"R": 0.6,
"H": 1.1,
"BB": 1.2,
"SO": 2.2,
"HR": 0.4,
"BF": 8.3,
"Pitches": 34.4
},
"rates": {
"ERA": 2.6129,
"WHIP": 1.1129,
"ER_per_IP": 0.29032,
"H_per_IP": 0.53226,
"BB_per_IP": 0.58065,
"SO_per_IP": 1.06452,
"HR_per_IP": 0.19355
}
},
"season": {
"games": 47,
"totals": {
"IP": 79.1,
"ER": 26.0,
"R": 28.0,
"H": 50.0,
"BB": 31.0,
"SO": 83.0,
"HR": 12.0,
"BF": 319.0,
"Pitches": 1279.0
},
"per_game": {
"IP": 1.2,
"ER": 0.5532,
"R": 0.5957,
"H": 1.0638,
"BB": 0.6596,
"SO": 1.766,
"HR": 0.2553,
"BF": 6.7872,
"Pitches": 27.2128
},
"rates": {
"ERA": 2.9496,
"WHIP": 1.021,
"ER_per_IP": 0.32773,
"H_per_IP": 0.63025,
"BB_per_IP": 0.39076,
"SO_per_IP": 1.04622,
"HR_per_IP": 0.15126
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 0.9,
"predicted_H": 1.726,
"predicted_BB": 1.456,
"predicted_SO": 2.881,
"predicted_HR": 0.409,
"predicted_ERA": 2.8712,
"predicted_WHIP": 1.1284
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4503,
"form_weight": 0.5497,
"form_reliability": 0.7626,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.065,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7626,
"prior_weight": 0.2374
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 0.9,
"final": 1.8456,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 1.726,
"final": 2.75,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.456,
"final": 2.6016,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.881,
"final": 3.3849,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.409,
"final": 0.2248,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8712,
"final": 2.8712,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1284,
"final": 1.1284,
"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": 20.2,
"ER": 6,
"H": 11,
"BB": 12,
"SO": 22,
"HR": 4,
"ERA": 2.6129032258064515,
"WHIP": 1.1129032258064515,
"K9": 9.580645161290322,
"HR9": 1.7419354838709677,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8551137060590751,
"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": 4.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.065,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7626,
"prior_weight": 0.2374
}
},
{
"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": 4,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669199",
"player_name": "Lake Bachar",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 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": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_ER",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PIT",
"games": 150,
"wins": 75,
"losses": 75,
"win_pct": 0.5,
"runs_scored": 718.0,
"runs_allowed": 692.0,
"run_differential": 26.0,
"run_differential_per_game": 0.1733,
"avg_runs_scored": 4.7867,
"avg_runs_allowed": 4.6133,
"offense_index": 1.0658,
"defense_index": 0.9736,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.2,
"run_differential": 0.0
},
"available": true,
"quality_score": 0.0912
},
"opponent": {
"team": "MIL",
"games": 150,
"wins": 93,
"losses": 57,
"win_pct": 0.62,
"runs_scored": 778.0,
"runs_allowed": 583.0,
"run_differential": 195.0,
"run_differential_per_game": 1.3,
"avg_runs_scored": 5.1867,
"avg_runs_allowed": 3.8867,
"offense_index": 1.1548,
"defense_index": 1.1556,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 7.4,
"avg_runs_allowed": 5.1,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.2962
},
"edges": {
"quality_edge": -0.205,
"offense_edge": 0.0658,
"opponent_offense_edge": 0.1548,
"defense_strength": -0.0264,
"opponent_defense_weakness": -0.1556,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9848,
"run_prevention": 1.0377,
"strikeout": 0.9815
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669199",
"profile": {
"available": true,
"pitcher_id": "669199",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 317.0,
"k_percent": 25.5,
"bb_percent": 10.2,
"woba": 0.286,
"xwoba": 0.29,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 34.5,
"avg_best_speed": 78.7527,
"avg_hyper_speed": 93.6373,
"whiff_percent": 30.1,
"swing_percent": 45.1
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3942,
"command_and_miss": 0.43,
"regression_edge": -0.1143,
"xwoba_edge": 0.6286,
"barrel_edge": -0.2889,
"hard_hit_edge": 0.4857,
"whiff_edge": 0.7286,
"bb_edge": -0.25,
"pitch_design_score": -0.0059
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669199",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 29,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 29,
"pitch_usage": 0.0,
"release_speed": 89.74314971920984,
"release_spin_rate": 2696.150229014235,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 29,
"pitch_usage": 0.0,
"release_speed": 89.74314971920984,
"release_spin_rate": 2696.150229014235,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7431,
"release_spin_rate": 2696.1502,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0059,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0423,
"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.3207,
"sample_weight": 1.0,
"run_prevention_factor": 0.9727,
"strikeout_factor": 1.0491,
"walk_factor": 1.02,
"homer_factor": 0.9848,
"woba_minus_xwoba": -0.004,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669199",
"espn_id": 42592,
"player_name": "Lake Bachar",
"team": "PIT",
"role": "pitcher",
"espn_rank": 154,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 154,
"gp_value": 48.0,
"gp_rank": "123",
"gs_value": 9.0,
"gs_rank": "181",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 3.5168,
"era_rank": null,
"w_value": 1.0,
"w_rank": "414",
"l_value": 3.0,
"l_rank": "245",
"sv_value": 2.0,
"sv_rank": "93",
"hld_value": 1.0,
"hld_rank": "272",
"ip_value": 79.1,
"ip_rank": "166",
"h_value": 54.0,
"h_rank": "226",
"er_value": 31.0,
"er_rank": "184",
"hr_value": 13.0,
"hr_rank": "127",
"bb_value": 33.0,
"bb_rank": "143",
"k_value": 83.0,
"k_rank": "151",
"k_per_9_value": 9.415967,
"k_per_9_rank": 24.0,
"whip_value": 1.0966,
"whip_rank": null,
"war_value": 1.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9727,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 0.9727,
"adjusted": 2
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9848,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0491,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 0,
"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 -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -9 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260915_MIL@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"
}
} |
| 20260915 | 20260915_NYY@MIN | away | Max Fried | Max Fried | True | 6.0 | 7.0 | 3 | 1 | 1 | 0 | 1/6 | 3/0 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.727272727272727,
"WHIP": 0.98989898989899,
"IP": 99.0,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.5,
"recent_avg_IP": 4.8,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8444,
"sample_weight": 1.0,
"run_prevention_factor": 0.9282,
"strikeout_factor": 1.0143,
"walk_factor": 0.978,
"homer_factor": 0.8068,
"regression_flag": "neutral",
"k_percent": 24.6,
"bb_percent": 8.1,
"woba": 0.243,
"xwoba": 0.249,
"barrel_percent": 2.0,
"hard_hit_percent": 29.4,
"whiff_percent": 24.9
},
"espn_rank": {
"rank": 25,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 99.0,
"season_ERA": 2.727,
"season_WHIP": 0.99,
"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": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "608331",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 4.0,
"R": 4.0,
"H": 16.0,
"BB": 8.0,
"SO": 26.0,
"HR": 3.0,
"BF": 92.0,
"Pitches": 393.0
},
"per_game": {
"IP": 4.2,
"ER": 0.8,
"R": 0.8,
"H": 3.2,
"BB": 1.6,
"SO": 5.2,
"HR": 0.6,
"BF": 18.4,
"Pitches": 78.6
},
"rates": {
"ERA": 1.5,
"WHIP": 1.0,
"ER_per_IP": 0.16667,
"H_per_IP": 0.66667,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.08333,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.1,
"ER": 16.0,
"R": 16.0,
"H": 35.0,
"BB": 16.0,
"SO": 51.0,
"HR": 3.0,
"BF": 181.0,
"Pitches": 749.0
},
"per_game": {
"IP": 4.2,
"ER": 1.6,
"R": 1.6,
"H": 3.5,
"BB": 1.6,
"SO": 5.1,
"HR": 0.3,
"BF": 18.1,
"Pitches": 74.9
},
"rates": {
"ERA": 3.1079,
"WHIP": 1.1007,
"ER_per_IP": 0.34532,
"H_per_IP": 0.7554,
"BB_per_IP": 0.34532,
"SO_per_IP": 1.10072,
"HR_per_IP": 0.06475
}
},
"season": {
"games": 18,
"totals": {
"IP": 99.0,
"ER": 30.0,
"R": 30.0,
"H": 67.0,
"BB": 31.0,
"SO": 94.0,
"HR": 4.0,
"BF": 382.0,
"Pitches": 1511.0
},
"per_game": {
"IP": 5.1,
"ER": 1.6667,
"R": 1.6667,
"H": 3.7222,
"BB": 1.7222,
"SO": 5.2222,
"HR": 0.2222,
"BF": 21.2222,
"Pitches": 83.9444
},
"rates": {
"ERA": 2.7273,
"WHIP": 0.9899,
"ER_per_IP": 0.30303,
"H_per_IP": 0.67677,
"BB_per_IP": 0.31313,
"SO_per_IP": 0.94949,
"HR_per_IP": 0.0404
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.574,
"predicted_H": 3.846,
"predicted_BB": 1.732,
"predicted_SO": 5.243,
"predicted_HR": 0.507,
"predicted_ERA": 2.7999,
"predicted_WHIP": 1.1022
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.574,
"final": 1.3204,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.846,
"final": 2.5885,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.732,
"final": 2.2923,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.243,
"final": 5.5775,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.507,
"final": 0.283,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7999,
"final": 2.7999,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1022,
"final": 1.1022,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.1,
"ER": 16,
"H": 35,
"BB": 16,
"SO": 51,
"HR": 3,
"ERA": 3.1079136690647484,
"WHIP": 1.1007194244604317,
"K9": 9.906474820143886,
"HR9": 0.5827338129496403,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-10T00:00:00"
},
"recent_form_boost": 0.8425234820255938,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_BB": 3.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "608331",
"player_name": "Max Fried",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "NYY",
"games": 150,
"wins": 87,
"losses": 63,
"win_pct": 0.58,
"runs_scored": 685.0,
"runs_allowed": 555.0,
"run_differential": 130.0,
"run_differential_per_game": 0.8667,
"avg_runs_scored": 4.5667,
"avg_runs_allowed": 3.7,
"offense_index": 1.0174,
"defense_index": 1.2131,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.4,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.2442
},
"opponent": {
"team": "MIN",
"games": 150,
"wins": 70,
"losses": 80,
"win_pct": 0.4667,
"runs_scored": 686.0,
"runs_allowed": 753.0,
"run_differential": -67.0,
"run_differential_per_game": -0.4467,
"avg_runs_scored": 4.5733,
"avg_runs_allowed": 5.02,
"offense_index": 1.0189,
"defense_index": 0.8941,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 5.7,
"run_differential": -29.0
},
"available": true,
"quality_score": -0.153
},
"edges": {
"quality_edge": 0.3972,
"offense_edge": 0.0174,
"opponent_offense_edge": 0.0189,
"defense_strength": 0.2131,
"opponent_defense_weakness": 0.1059,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0215,
"run_prevention": 0.9619,
"strikeout": 1.0104
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "608331",
"profile": {
"available": true,
"pitcher_id": "608331",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 366.0,
"k_percent": 24.6,
"bb_percent": 8.1,
"woba": 0.243,
"xwoba": 0.249,
"sweet_spot_percent": 29.8,
"barrel_batted_rate": 2.0,
"hard_hit_percent": 29.4,
"avg_best_speed": 74.2355,
"avg_hyper_speed": 92.5632,
"whiff_percent": 24.9,
"swing_percent": 45.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4505,
"command_and_miss": 0.2171,
"regression_edge": -0.1714,
"xwoba_edge": 1.8,
"barrel_edge": 1.1333,
"hard_hit_edge": 1.2143,
"whiff_edge": -0.0143,
"bb_edge": 0.275,
"pitch_design_score": -0.0898
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "608331",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 78,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 88.24589383369891,
"release_spin_rate": 2246.0009168975425,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 78,
"pitch_usage": 0.0,
"release_speed": 88.24589383369891,
"release_spin_rate": 2246.0009168975425,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2459,
"release_spin_rate": 2246.0009,
"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.0898,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6412,
"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.8444,
"sample_weight": 1.0,
"run_prevention_factor": 0.9282,
"strikeout_factor": 1.0143,
"walk_factor": 0.978,
"homer_factor": 0.8068,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "608331",
"espn_id": 32685,
"player_name": "Max Fried",
"team": "NYY",
"role": "pitcher",
"espn_rank": 25,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 25,
"gp_value": 18.0,
"gp_rank": "418",
"gs_value": 18.0,
"gs_rank": "114",
"qs_value": 7.0,
"qs_rank": "82",
"era_value": 2.7272,
"era_rank": null,
"w_value": 4.0,
"w_rank": "192",
"l_value": 4.0,
"l_rank": "190",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 99.0,
"ip_rank": "131",
"h_value": 67.0,
"h_rank": "178",
"er_value": 30.0,
"er_rank": "193",
"hr_value": 4.0,
"hr_rank": "379",
"bb_value": 31.0,
"bb_rank": "162",
"k_value": 94.0,
"k_rank": "123",
"k_per_9_value": 8.545455,
"k_per_9_rank": 25.0,
"whip_value": 0.9898,
"whip_rank": null,
"war_value": 3.4,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9282,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9282,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.978,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.82,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0143,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
}
],
"provenance": {
"prediction": "output/games/20260915_NYY@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_NYY@MIN | home | Bailey Ober | Bailey Ober | True | 5.0 | 5.1 | 1 | 4 | 3 | -1 | 5/9 | 2/2 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.28328611898017,
"WHIP": 1.2492917847025495,
"IP": 117.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.348,
"recent_avg_IP": 4.933,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2855,
"sample_weight": 1.0,
"run_prevention_factor": 1.0243,
"strikeout_factor": 0.944,
"walk_factor": 0.952,
"homer_factor": 1.0511,
"regression_flag": "neutral",
"k_percent": 17.1,
"bb_percent": 6.8,
"woba": 0.317,
"xwoba": 0.327,
"barrel_percent": 9.8,
"hard_hit_percent": 36.2,
"whiff_percent": 20.1
},
"espn_rank": {
"rank": 94,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "641927",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 10.0,
"R": 11.0,
"H": 24.0,
"BB": 10.0,
"SO": 22.0,
"HR": 4.0,
"BF": 109.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.2,
"H": 4.8,
"BB": 2.0,
"SO": 4.4,
"HR": 0.8,
"BF": 21.8,
"Pitches": 89.0
},
"rates": {
"ERA": 3.6486,
"WHIP": 1.3784,
"ER_per_IP": 0.40541,
"H_per_IP": 0.97297,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.89189,
"HR_per_IP": 0.16216
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 22.0,
"R": 24.0,
"H": 50.0,
"BB": 16.0,
"SO": 39.0,
"HR": 6.0,
"BF": 217.0,
"Pitches": 849.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.4,
"H": 5.0,
"BB": 1.6,
"SO": 3.9,
"HR": 0.6,
"BF": 21.7,
"Pitches": 84.9
},
"rates": {
"ERA": 3.8824,
"WHIP": 1.2941,
"ER_per_IP": 0.43137,
"H_per_IP": 0.98039,
"BB_per_IP": 0.31373,
"SO_per_IP": 0.76471,
"HR_per_IP": 0.11765
}
},
"season": {
"games": 22,
"totals": {
"IP": 117.2,
"ER": 56.0,
"R": 60.0,
"H": 113.0,
"BB": 34.0,
"SO": 85.0,
"HR": 18.0,
"BF": 498.0,
"Pitches": 1881.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5455,
"R": 2.7273,
"H": 5.1364,
"BB": 1.5455,
"SO": 3.8636,
"HR": 0.8182,
"BF": 22.6364,
"Pitches": 85.5
},
"rates": {
"ERA": 4.2833,
"WHIP": 1.2493,
"ER_per_IP": 0.47592,
"H_per_IP": 0.96034,
"BB_per_IP": 0.28895,
"SO_per_IP": 0.72238,
"HR_per_IP": 0.15297
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.24,
"predicted_H": 4.921,
"predicted_BB": 1.792,
"predicted_SO": 4.23,
"predicted_HR": 0.734,
"predicted_ERA": 3.9893,
"predicted_WHIP": 1.3282
}
},
"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": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.24,
"final": 2.9937,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.921,
"final": 4.9548,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.792,
"final": 1.8811,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.23,
"final": 4.988,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.734,
"final": 0.8479,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9893,
"final": 3.9893,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3282,
"final": 1.3282,
"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": 22,
"H": 50,
"BB": 16,
"SO": 39,
"HR": 6,
"ERA": 3.8823529411764706,
"WHIP": 1.2941176470588236,
"K9": 6.882352941176471,
"HR9": 1.0588235294117647,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-06T00:00:00"
},
"recent_form_boost": 0.9344828557031224,
"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": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641927",
"player_name": "Bailey Ober",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 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": "MIN",
"games": 150,
"wins": 70,
"losses": 80,
"win_pct": 0.4667,
"runs_scored": 686.0,
"runs_allowed": 753.0,
"run_differential": -67.0,
"run_differential_per_game": -0.4467,
"avg_runs_scored": 4.5733,
"avg_runs_allowed": 5.02,
"offense_index": 1.0189,
"defense_index": 0.8941,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 2.8,
"avg_runs_allowed": 5.7,
"run_differential": -29.0
},
"available": true,
"quality_score": -0.153
},
"opponent": {
"team": "NYY",
"games": 150,
"wins": 87,
"losses": 63,
"win_pct": 0.58,
"runs_scored": 685.0,
"runs_allowed": 555.0,
"run_differential": 130.0,
"run_differential_per_game": 0.8667,
"avg_runs_scored": 4.5667,
"avg_runs_allowed": 3.7,
"offense_index": 1.0174,
"defense_index": 1.2131,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 3.4,
"run_differential": 15.0
},
"available": true,
"quality_score": 0.2442
},
"edges": {
"quality_edge": -0.3972,
"offense_edge": 0.0189,
"opponent_offense_edge": 0.0174,
"defense_strength": -0.1059,
"opponent_defense_weakness": -0.2131,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9802,
"run_prevention": 1.0332,
"strikeout": 0.9867
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641927",
"profile": {
"available": true,
"pitcher_id": "641927",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 476.0,
"k_percent": 17.1,
"bb_percent": 6.8,
"woba": 0.317,
"xwoba": 0.327,
"sweet_spot_percent": 30.6,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 36.2,
"avg_best_speed": 77.5331,
"avg_hyper_speed": 93.8512,
"whiff_percent": 20.1,
"swing_percent": 48.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2144,
"command_and_miss": -0.44,
"regression_edge": -0.2857,
"xwoba_edge": -0.4286,
"barrel_edge": -0.6,
"hard_hit_edge": 0.2429,
"whiff_edge": -0.7,
"bb_edge": 0.6,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641927",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 87,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 87,
"pitch_usage": 0.0,
"release_speed": 83.55180572766697,
"release_spin_rate": 2147.7788498777327,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 83.55180572766697,
"release_spin_rate": 2147.7788498777327,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 83.5518,
"release_spin_rate": 2147.7788,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": -0.2855,
"sample_weight": 1.0,
"run_prevention_factor": 1.0243,
"strikeout_factor": 0.944,
"walk_factor": 0.952,
"homer_factor": 1.0511,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "641927",
"espn_id": 3107919,
"player_name": "Bailey Ober",
"team": "MIN",
"role": "pitcher",
"espn_rank": 94,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 94,
"gp_value": 22.0,
"gp_rank": "374",
"gs_value": 22.0,
"gs_rank": "88",
"qs_value": 6.0,
"qs_rank": "93",
"era_value": 4.2832,
"era_rank": null,
"w_value": 7.0,
"w_rank": "87",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 117.2,
"ip_rank": "100",
"h_value": 113.0,
"h_rank": "97",
"er_value": 56.0,
"er_rank": "89",
"hr_value": 18.0,
"hr_rank": "62",
"bb_value": 34.0,
"bb_rank": "134",
"k_value": 85.0,
"k_rank": "147",
"k_per_9_value": 6.5014167,
"k_per_9_rank": 39.0,
"whip_value": 1.2492,
"whip_rank": null,
"war_value": 1.79,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0243,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0243,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.952,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0511,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.944,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260915_NYY@MIN.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_OAK@TB | away | Jack Perkins | Jack Perkins | True | 4.0 | 6.2 | 8 | 4 | 0 | -4 | 5/4 | 1/1 | 2/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.532258064516129,
"WHIP": 1.5290322580645161,
"IP": 103.1,
"games_started": null,
"games_pitched": 34,
"role_avg_IP": 4.548,
"recent_avg_IP": 4.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0521,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 1.0286,
"walk_factor": 1.014,
"homer_factor": 1.0259,
"regression_flag": "positive_pitcher_regression",
"k_percent": 25.2,
"bb_percent": 9.9,
"woba": 0.361,
"xwoba": 0.311,
"barrel_percent": 8.8,
"hard_hit_percent": 37.3,
"whiff_percent": 26.8
},
"espn_rank": {
"rank": 853,
"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": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "678022",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 34,
"reference_playing_time": 8.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 21.2,
"ER": 9.0,
"R": 12.0,
"H": 19.0,
"BB": 15.0,
"SO": 25.0,
"HR": 4.0,
"BF": 97.0,
"Pitches": 395.0
},
"per_game": {
"IP": 4.1,
"ER": 1.8,
"R": 2.4,
"H": 3.8,
"BB": 3.0,
"SO": 5.0,
"HR": 0.8,
"BF": 19.4,
"Pitches": 79.0
},
"rates": {
"ERA": 3.7385,
"WHIP": 1.5692,
"ER_per_IP": 0.41538,
"H_per_IP": 0.87692,
"BB_per_IP": 0.69231,
"SO_per_IP": 1.15385,
"HR_per_IP": 0.18462
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 31.0,
"R": 35.0,
"H": 51.0,
"BB": 24.0,
"SO": 47.0,
"HR": 10.0,
"BF": 209.0,
"Pitches": 809.0
},
"per_game": {
"IP": 4.2,
"ER": 3.1,
"R": 3.5,
"H": 5.1,
"BB": 2.4,
"SO": 4.7,
"HR": 1.0,
"BF": 20.9,
"Pitches": 80.9
},
"rates": {
"ERA": 6.1095,
"WHIP": 1.6423,
"ER_per_IP": 0.67883,
"H_per_IP": 1.11679,
"BB_per_IP": 0.52555,
"SO_per_IP": 1.0292,
"HR_per_IP": 0.21898
}
},
"season": {
"games": 34,
"totals": {
"IP": 103.1,
"ER": 75.0,
"R": 81.0,
"H": 111.0,
"BB": 47.0,
"SO": 119.0,
"HR": 20.0,
"BF": 473.0,
"Pitches": 1844.0
},
"per_game": {
"IP": 3.0,
"ER": 2.2059,
"R": 2.3824,
"H": 3.2647,
"BB": 1.3824,
"SO": 3.5,
"HR": 0.5882,
"BF": 13.9118,
"Pitches": 54.2353
},
"rates": {
"ERA": 6.5323,
"WHIP": 1.529,
"ER_per_IP": 0.72581,
"H_per_IP": 1.07419,
"BB_per_IP": 0.45484,
"SO_per_IP": 1.15161,
"HR_per_IP": 0.19355
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.625,
"predicted_H": 4.66,
"predicted_BB": 2.613,
"predicted_SO": 5.084,
"predicted_HR": 0.897,
"predicted_ERA": 5.0557,
"predicted_WHIP": 1.5565
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4042,
"form_weight": 0.5958,
"form_reliability": 0.8718,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
},
"applied_metrics": {
"predicted_IP": {
"model": 8.0,
"form": 4.2,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.625,
"final": 3.5849,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.66,
"final": 4.7974,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.613,
"final": 1.9611,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.084,
"final": 3.8376,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.897,
"final": 1.3428,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0557,
"final": 5.0557,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5565,
"final": 1.5565,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 45.2,
"ER": 31,
"H": 51,
"BB": 24,
"SO": 47,
"HR": 10,
"ERA": 6.109489051094891,
"WHIP": 1.6423357664233578,
"K9": 9.262773722627738,
"HR9": 1.9708029197080292,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-08T00:00:00"
},
"recent_form_boost": 1.193741121053058,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 8.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 2.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 34.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8718,
"prior_weight": 0.1282
}
},
{
"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": 5,
"predicted_H": 5,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678022",
"player_name": "Jack Perkins",
"position": "Starter",
"team": "OAK",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 8.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": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"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": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"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": 5.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.0,
"predicted_R": 5.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"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": 8.0,
"after": 4.0,
"delta": -4.0,
"percent_delta": -0.5,
"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": 150,
"wins": 61,
"losses": 89,
"win_pct": 0.4067,
"runs_scored": 656.0,
"runs_allowed": 859.0,
"run_differential": -203.0,
"run_differential_per_game": -1.3533,
"avg_runs_scored": 4.3733,
"avg_runs_allowed": 5.7267,
"offense_index": 0.9737,
"defense_index": 0.7843,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.175
},
"opponent": {
"team": "TB",
"games": 149,
"wins": 90,
"losses": 59,
"win_pct": 0.604,
"runs_scored": 682.0,
"runs_allowed": 613.0,
"run_differential": 69.0,
"run_differential_per_game": 0.4631,
"avg_runs_scored": 4.5772,
"avg_runs_allowed": 4.1141,
"offense_index": 1.0191,
"defense_index": 1.0917,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2151
},
"edges": {
"quality_edge": -0.3901,
"offense_edge": -0.0263,
"opponent_offense_edge": 0.0191,
"defense_strength": -0.2157,
"opponent_defense_weakness": -0.0917,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9772,
"run_prevention": 1.0441,
"strikeout": 0.9868
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678022",
"profile": {
"available": true,
"pitcher_id": "678022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 441.0,
"k_percent": 25.2,
"bb_percent": 9.9,
"woba": 0.361,
"xwoba": 0.311,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 8.8,
"hard_hit_percent": 37.3,
"avg_best_speed": 78.7924,
"avg_hyper_speed": 93.5813,
"whiff_percent": 26.8,
"swing_percent": 47.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2945,
"command_and_miss": 0.2607,
"regression_edge": 1.4286,
"xwoba_edge": 0.0286,
"barrel_edge": -0.3778,
"hard_hit_edge": 0.0857,
"whiff_edge": 0.2571,
"bb_edge": -0.175,
"pitch_design_score": 0.0792
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678022",
"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": 91.26230166793476,
"release_spin_rate": 2235.888755159206,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 91.26230166793476,
"release_spin_rate": 2235.888755159206,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2623,
"release_spin_rate": 2235.8888,
"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.0792,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.5654,
"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.0521,
"sample_weight": 1.0,
"run_prevention_factor": 0.9956,
"strikeout_factor": 1.0286,
"walk_factor": 1.014,
"homer_factor": 1.0259,
"woba_minus_xwoba": 0.05,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "678022",
"espn_id": 4418686,
"player_name": "Jack Perkins",
"team": "ATH",
"role": "pitcher",
"espn_rank": 853,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 853,
"gp_value": 34.0,
"gp_rank": "200",
"gs_value": 14.0,
"gs_rank": "147",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 6.5322,
"era_rank": null,
"w_value": 3.0,
"w_rank": "248",
"l_value": 11.0,
"l_rank": "11",
"sv_value": 3.0,
"sv_rank": "68",
"hld_value": 2.0,
"hld_rank": "231",
"ip_value": 103.1,
"ip_rank": "119",
"h_value": 111.0,
"h_rank": "103",
"er_value": 75.0,
"er_rank": "21",
"hr_value": 20.0,
"hr_rank": "40",
"bb_value": 47.0,
"bb_rank": "55",
"k_value": 119.0,
"k_rank": "74",
"k_per_9_value": 10.364516,
"k_per_9_rank": 16.0,
"whip_value": 1.529,
"whip_rank": null,
"war_value": -1.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9956,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9956,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.014,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0259,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0286,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 5,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 2,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 69,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +8 outs from the projected workload."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260915_OAK@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_OAK@TB | home | Griffin Jax | Griffin Jax | True | 5.0 | 5.0 | 0 | 4 | 0 | -4 | 5/2 | 2/0 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.714765100671141,
"WHIP": 1.1979865771812082,
"IP": 99.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 4.517,
"recent_avg_IP": 4.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0834,
"sample_weight": 1.0,
"run_prevention_factor": 1.0071,
"strikeout_factor": 1.0451,
"walk_factor": 0.976,
"homer_factor": 1.0747,
"regression_flag": "neutral",
"k_percent": 24.9,
"bb_percent": 8.0,
"woba": 0.31,
"xwoba": 0.328,
"barrel_percent": 9.5,
"hard_hit_percent": 41.1,
"whiff_percent": 30.0
},
"espn_rank": {
"rank": 552,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 99.1,
"season_ERA": 3.715,
"season_WHIP": 1.198,
"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": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "643377",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 10.0,
"R": 13.0,
"H": 21.0,
"BB": 7.0,
"SO": 26.0,
"HR": 2.0,
"BF": 101.0,
"Pitches": 387.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0,
"R": 2.6,
"H": 4.2,
"BB": 1.4,
"SO": 5.2,
"HR": 0.4,
"BF": 20.2,
"Pitches": 77.4
},
"rates": {
"ERA": 3.6986,
"WHIP": 1.1507,
"ER_per_IP": 0.41096,
"H_per_IP": 0.86301,
"BB_per_IP": 0.28767,
"SO_per_IP": 1.06849,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 50.1,
"ER": 24.0,
"R": 29.0,
"H": 44.0,
"BB": 15.0,
"SO": 57.0,
"HR": 6.0,
"BF": 211.0,
"Pitches": 781.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.9,
"H": 4.4,
"BB": 1.5,
"SO": 5.7,
"HR": 0.6,
"BF": 21.1,
"Pitches": 78.1
},
"rates": {
"ERA": 4.2914,
"WHIP": 1.1722,
"ER_per_IP": 0.47682,
"H_per_IP": 0.87417,
"BB_per_IP": 0.29801,
"SO_per_IP": 1.13245,
"HR_per_IP": 0.11921
}
},
"season": {
"games": 30,
"totals": {
"IP": 99.1,
"ER": 41.0,
"R": 51.0,
"H": 87.0,
"BB": 32.0,
"SO": 103.0,
"HR": 15.0,
"BF": 408.0,
"Pitches": 1515.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3667,
"R": 1.7,
"H": 2.9,
"BB": 1.0667,
"SO": 3.4333,
"HR": 0.5,
"BF": 13.6,
"Pitches": 50.5
},
"rates": {
"ERA": 3.7148,
"WHIP": 1.198,
"ER_per_IP": 0.41275,
"H_per_IP": 0.87584,
"BB_per_IP": 0.32215,
"SO_per_IP": 1.03691,
"HR_per_IP": 0.15101
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.097,
"predicted_H": 4.171,
"predicted_BB": 1.457,
"predicted_SO": 5.015,
"predicted_HR": 0.539,
"predicted_ERA": 4.0037,
"predicted_WHIP": 1.1938
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.097,
"final": 2.8779,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.171,
"final": 4.5112,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.457,
"final": 1.6798,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.015,
"final": 4.5985,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.539,
"final": 0.7282,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0037,
"final": 4.0037,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1938,
"final": 1.1938,
"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": 24,
"H": 44,
"BB": 15,
"SO": 57,
"HR": 6,
"ERA": 4.291390728476821,
"WHIP": 1.1721854304635762,
"K9": 10.19205298013245,
"HR9": 1.0728476821192052,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.9774513013595307,
"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": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "643377",
"player_name": "Griffin Jax",
"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": 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": "TB",
"games": 149,
"wins": 90,
"losses": 59,
"win_pct": 0.604,
"runs_scored": 682.0,
"runs_allowed": 613.0,
"run_differential": 69.0,
"run_differential_per_game": 0.4631,
"avg_runs_scored": 4.5772,
"avg_runs_allowed": 4.1141,
"offense_index": 1.0191,
"defense_index": 1.0917,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.4,
"avg_runs_allowed": 3.6,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.2151
},
"opponent": {
"team": "OAK",
"games": 150,
"wins": 61,
"losses": 89,
"win_pct": 0.4067,
"runs_scored": 656.0,
"runs_allowed": 859.0,
"run_differential": -203.0,
"run_differential_per_game": -1.3533,
"avg_runs_scored": 4.3733,
"avg_runs_allowed": 5.7267,
"offense_index": 0.9737,
"defense_index": 0.7843,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 5.4,
"run_differential": -9.0
},
"available": true,
"quality_score": -0.175
},
"edges": {
"quality_edge": 0.3901,
"offense_edge": 0.0191,
"opponent_offense_edge": -0.0263,
"defense_strength": 0.0917,
"opponent_defense_weakness": 0.2157,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0194,
"run_prevention": 0.9671,
"strikeout": 1.0138
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "643377",
"profile": {
"available": true,
"pitcher_id": "643377",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 390.0,
"k_percent": 24.9,
"bb_percent": 8.0,
"woba": 0.31,
"xwoba": 0.328,
"sweet_spot_percent": 34.5,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 41.1,
"avg_best_speed": 78.0433,
"avg_hyper_speed": 94.3315,
"whiff_percent": 30.0,
"swing_percent": 48.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3023,
"command_and_miss": 0.4964,
"regression_edge": -0.5143,
"xwoba_edge": -0.4571,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.4571,
"whiff_edge": 0.7143,
"bb_edge": 0.3,
"pitch_design_score": 0.1034
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "643377",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 81,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 91.69538378408564,
"release_spin_rate": 2571.395898412938,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 81,
"pitch_usage": 0.0,
"release_speed": 91.69538378408564,
"release_spin_rate": 2571.395898412938,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6954,
"release_spin_rate": 2571.3959,
"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.1034,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7386,
"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.0834,
"sample_weight": 1.0,
"run_prevention_factor": 1.0071,
"strikeout_factor": 1.0451,
"walk_factor": 0.976,
"homer_factor": 1.0747,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "643377",
"espn_id": 42604,
"player_name": "Griffin Jax",
"team": "TB",
"role": "pitcher",
"espn_rank": 552,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 552,
"gp_value": 31.0,
"gp_rank": "212",
"gs_value": 20.0,
"gs_rank": "100",
"qs_value": 2.0,
"qs_rank": "158",
"era_value": 3.9865,
"era_rank": null,
"w_value": 7.0,
"w_rank": "87",
"l_value": 10.0,
"l_rank": "21",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 2.0,
"hld_rank": "231",
"ip_value": 99.1,
"ip_rank": "128",
"h_value": 90.0,
"h_rank": "128",
"er_value": 44.0,
"er_rank": "137",
"hr_value": 15.0,
"hr_rank": "94",
"bb_value": 33.0,
"bb_rank": "143",
"k_value": 103.0,
"k_rank": "97",
"k_per_9_value": 9.332215,
"k_per_9_rank": 20.0,
"whip_value": 1.2382,
"whip_rank": null,
"war_value": -0.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0071,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0071,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0747,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0451,
"adjusted": 5
}
}
}
},
"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": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260915_OAK@TB.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_PHI@WAS | away | Cristopher Sánchez | Cristopher Sánchez | True | 6.1 | 6.1 | 0 | 1 | 5 | 4 | 3/8 | 2/2 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.786476868327402,
"WHIP": 1.2117437722419928,
"IP": 187.1,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 6.244,
"recent_avg_IP": 6.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4906,
"sample_weight": 1.0,
"run_prevention_factor": 0.9583,
"strikeout_factor": 1.0674,
"walk_factor": 0.924,
"homer_factor": 0.992,
"regression_flag": "neutral",
"k_percent": 27.0,
"bb_percent": 5.4,
"woba": 0.295,
"xwoba": 0.282,
"barrel_percent": 7.1,
"hard_hit_percent": 41.0,
"whiff_percent": 31.8
},
"espn_rank": {
"rank": 1,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650911",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 14.0,
"R": 14.0,
"H": 34.0,
"BB": 7.0,
"SO": 29.0,
"HR": 3.0,
"BF": 132.0,
"Pitches": 473.0
},
"per_game": {
"IP": 6.1,
"ER": 2.8,
"R": 2.8,
"H": 6.8,
"BB": 1.4,
"SO": 5.8,
"HR": 0.6,
"BF": 26.4,
"Pitches": 94.6
},
"rates": {
"ERA": 3.9789,
"WHIP": 1.2947,
"ER_per_IP": 0.44211,
"H_per_IP": 1.07368,
"BB_per_IP": 0.22105,
"SO_per_IP": 0.91579,
"HR_per_IP": 0.09474
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 21.0,
"R": 22.0,
"H": 59.0,
"BB": 17.0,
"SO": 66.0,
"HR": 4.0,
"BF": 253.0,
"Pitches": 959.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.2,
"H": 5.9,
"BB": 1.7,
"SO": 6.6,
"HR": 0.4,
"BF": 25.3,
"Pitches": 95.9
},
"rates": {
"ERA": 3.15,
"WHIP": 1.2667,
"ER_per_IP": 0.35,
"H_per_IP": 0.98333,
"BB_per_IP": 0.28333,
"SO_per_IP": 1.1,
"HR_per_IP": 0.06667
}
},
"season": {
"games": 30,
"totals": {
"IP": 187.1,
"ER": 58.0,
"R": 64.0,
"H": 185.0,
"BB": 42.0,
"SO": 210.0,
"HR": 16.0,
"BF": 778.0,
"Pitches": 2862.0
},
"per_game": {
"IP": 6.1,
"ER": 1.9333,
"R": 2.1333,
"H": 6.1667,
"BB": 1.4,
"SO": 7.0,
"HR": 0.5333,
"BF": 25.9333,
"Pitches": 95.4
},
"rates": {
"ERA": 2.7865,
"WHIP": 1.2117,
"ER_per_IP": 0.30961,
"H_per_IP": 0.98754,
"BB_per_IP": 0.2242,
"SO_per_IP": 1.121,
"HR_per_IP": 0.08541
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.5,
"predicted_H": 6.345,
"predicted_BB": 1.634,
"predicted_SO": 6.294,
"predicted_HR": 0.575,
"predicted_ERA": 3.6103,
"predicted_WHIP": 1.2801
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.5,
"final": 1.8844,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 6.345,
"final": 4.9723,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.634,
"final": 1.7842,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.294,
"final": 5.763,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.575,
"final": 0.339,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6103,
"final": 3.6103,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2801,
"final": 1.2801,
"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": 21,
"H": 59,
"BB": 17,
"SO": 66,
"HR": 4,
"ERA": 3.1499999999999995,
"WHIP": 1.2666666666666666,
"K9": 9.899999999999999,
"HR9": 0.6,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8514068753109654,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650911",
"player_name": "Cristopher S\u00e1nchez",
"position": "Starter",
"team": "PHI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"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": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "PHI",
"games": 150,
"wins": 83,
"losses": 67,
"win_pct": 0.5533,
"runs_scored": 675.0,
"runs_allowed": 644.0,
"run_differential": 31.0,
"run_differential_per_game": 0.2067,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.2933,
"offense_index": 1.0015,
"defense_index": 1.0466,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.9,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0356
},
"opponent": {
"team": "WAS",
"games": 151,
"wins": 70,
"losses": 81,
"win_pct": 0.4636,
"runs_scored": 772.0,
"runs_allowed": 769.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0199,
"avg_runs_scored": 5.1126,
"avg_runs_allowed": 5.0927,
"offense_index": 1.1378,
"defense_index": 0.8823,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.7,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0985
},
"edges": {
"quality_edge": 0.1341,
"offense_edge": 0.0015,
"opponent_offense_edge": 0.1378,
"defense_strength": 0.0466,
"opponent_defense_weakness": 0.1177,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0012,
"run_prevention": 1.0107,
"strikeout": 0.993
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650911",
"profile": {
"available": true,
"pitcher_id": "650911",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 748.0,
"k_percent": 27.0,
"bb_percent": 5.4,
"woba": 0.295,
"xwoba": 0.282,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 41.0,
"avg_best_speed": 77.7751,
"avg_hyper_speed": 94.3382,
"whiff_percent": 31.8,
"swing_percent": 50.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4101,
"command_and_miss": 0.8514,
"regression_edge": 0.3714,
"xwoba_edge": 0.8571,
"barrel_edge": 0.0,
"hard_hit_edge": -0.4429,
"whiff_edge": 0.9714,
"bb_edge": 0.95,
"pitch_design_score": 0.0296
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650911",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 96,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.3779172483454,
"release_spin_rate": 2082.394794219994,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 96,
"pitch_usage": 0.0,
"release_speed": 90.3779172483454,
"release_spin_rate": 2082.394794219994,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3779,
"release_spin_rate": 2082.3948,
"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.0296,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2116,
"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.4906,
"sample_weight": 1.0,
"run_prevention_factor": 0.9583,
"strikeout_factor": 1.0674,
"walk_factor": 0.924,
"homer_factor": 0.992,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "650911",
"espn_id": 42359,
"player_name": "Cristopher Sanchez",
"team": "PHI",
"role": "pitcher",
"espn_rank": 1,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 1,
"gp_value": 30.0,
"gp_rank": "225",
"gs_value": 30.0,
"gs_rank": "4",
"qs_value": 20.0,
"qs_rank": "2",
"era_value": 2.7864,
"era_rank": 10.0,
"w_value": 17.0,
"w_rank": "1",
"l_value": 5.0,
"l_rank": "137",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 187.1,
"ip_rank": "2",
"h_value": 185.0,
"h_rank": "3",
"er_value": 58.0,
"er_rank": "78",
"hr_value": 16.0,
"hr_rank": "87",
"bb_value": 42.0,
"bb_rank": "74",
"k_value": 210.0,
"k_rank": "6",
"k_per_9_value": 10.088967,
"k_per_9_rank": 81.0,
"whip_value": 1.2117,
"whip_rank": 30.0,
"war_value": 7.6,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9583,
"adjusted": 2
},
"predicted_H": {
"original": 7.0,
"factor": 0.9583,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.924,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.992,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0674,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was +4; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
},
{
"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/20260915_PHI@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_PHI@WAS | home | Jackson Kent | Jackson Kent | True | 4.1 | 5.0 | 2 | 3 | 3 | 0 | 5/4 | 3/3 | 4/4 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 6.585365853658537,
"WHIP": 1.829268292682927,
"IP": 27.1,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.556,
"recent_avg_IP": 4.667,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2571,
"sample_weight": 0.45,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9884,
"walk_factor": 1.0567,
"homer_factor": 1.0349,
"regression_flag": "neutral",
"k_percent": 17.8,
"bb_percent": 15.5,
"woba": 0.35,
"xwoba": 0.355,
"barrel_percent": 8.1,
"hard_hit_percent": 41.9,
"whiff_percent": 24.7
},
"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.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800600",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 17.0,
"R": 18.0,
"H": 27.0,
"BB": 15.0,
"SO": 17.0,
"HR": 1.0,
"BF": 110.0,
"Pitches": 439.0
},
"per_game": {
"IP": 4.2,
"ER": 3.4,
"R": 3.6,
"H": 5.4,
"BB": 3.0,
"SO": 3.4,
"HR": 0.2,
"BF": 22.0,
"Pitches": 87.8
},
"rates": {
"ERA": 6.5571,
"WHIP": 1.8,
"ER_per_IP": 0.72857,
"H_per_IP": 1.15714,
"BB_per_IP": 0.64286,
"SO_per_IP": 0.72857,
"HR_per_IP": 0.04286
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 27.1,
"ER": 20.0,
"R": 21.0,
"H": 30.0,
"BB": 20.0,
"SO": 23.0,
"HR": 1.0,
"BF": 129.0,
"Pitches": 517.0
},
"per_game": {
"IP": 4.2,
"ER": 3.3333,
"R": 3.5,
"H": 5.0,
"BB": 3.3333,
"SO": 3.8333,
"HR": 0.1667,
"BF": 21.5,
"Pitches": 86.1667
},
"rates": {
"ERA": 6.5854,
"WHIP": 1.8293,
"ER_per_IP": 0.73171,
"H_per_IP": 1.09756,
"BB_per_IP": 0.73171,
"SO_per_IP": 0.84146,
"HR_per_IP": 0.03659
}
},
"season": {
"games": 6,
"totals": {
"IP": 27.1,
"ER": 20.0,
"R": 21.0,
"H": 30.0,
"BB": 20.0,
"SO": 23.0,
"HR": 1.0,
"BF": 129.0,
"Pitches": 517.0
},
"per_game": {
"IP": 4.2,
"ER": 3.3333,
"R": 3.5,
"H": 5.0,
"BB": 3.3333,
"SO": 3.8333,
"HR": 0.1667,
"BF": 21.5,
"Pitches": 86.1667
},
"rates": {
"ERA": 6.5854,
"WHIP": 1.8293,
"ER_per_IP": 0.73171,
"H_per_IP": 1.09756,
"BB_per_IP": 0.73171,
"SO_per_IP": 0.84146,
"HR_per_IP": 0.03659
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 3.028,
"predicted_H": 5.159,
"predicted_BB": 2.54,
"predicted_SO": 4.013,
"predicted_HR": 0.433,
"predicted_ERA": 5.656,
"predicted_WHIP": 1.5979
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.028,
"final": 2.4708,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.159,
"final": 3.9888,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.54,
"final": 2.7893,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.013,
"final": 4.006,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.433,
"final": 0.1983,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.656,
"final": 5.656,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5979,
"final": 1.5979,
"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": 27.1,
"ER": 20,
"H": 30,
"BB": 20,
"SO": 23,
"HR": 1,
"ERA": 6.585365853658536,
"WHIP": 1.8292682926829267,
"K9": 7.573170731707316,
"HR9": 0.3292682926829268,
"games_pitched": 6,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 1.2268138351554825,
"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": 3.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800600",
"player_name": "Jackson Kent",
"position": "Starter",
"team": "WAS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"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": 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": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"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": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.1,
"after": 4.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"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": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.1,
"delta": -0.9,
"percent_delta": -0.18,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 151,
"wins": 70,
"losses": 81,
"win_pct": 0.4636,
"runs_scored": 772.0,
"runs_allowed": 769.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0199,
"avg_runs_scored": 5.1126,
"avg_runs_allowed": 5.0927,
"offense_index": 1.1378,
"defense_index": 0.8823,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 5.7,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0985
},
"opponent": {
"team": "PHI",
"games": 150,
"wins": 83,
"losses": 67,
"win_pct": 0.5533,
"runs_scored": 675.0,
"runs_allowed": 644.0,
"run_differential": 31.0,
"run_differential_per_game": 0.2067,
"avg_runs_scored": 4.5,
"avg_runs_allowed": 4.2933,
"offense_index": 1.0015,
"defense_index": 1.0466,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.9,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.0356
},
"edges": {
"quality_edge": -0.1341,
"offense_edge": 0.1378,
"opponent_offense_edge": 0.0015,
"defense_strength": -0.1177,
"opponent_defense_weakness": -0.0466,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.991,
"run_prevention": 1.0187,
"strikeout": 0.9959
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800600",
"profile": {
"available": true,
"pitcher_id": "800600",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 112.0,
"k_percent": 17.8,
"bb_percent": 15.5,
"woba": 0.35,
"xwoba": 0.355,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 41.9,
"avg_best_speed": 76.4886,
"avg_hyper_speed": 94.3915,
"whiff_percent": 24.7,
"swing_percent": 45.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7032,
"command_and_miss": -0.6,
"regression_edge": -0.1429,
"xwoba_edge": -1.2286,
"barrel_edge": -0.2222,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.0429,
"bb_edge": -1.575,
"pitch_design_score": -0.0898
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800600",
"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": 88.24469561877434,
"release_spin_rate": 2157.482127703858,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.24469561877434,
"release_spin_rate": 2157.482127703858,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2447,
"release_spin_rate": 2157.4821,
"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.0898,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6417,
"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.2571,
"sample_weight": 0.45,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9884,
"walk_factor": 1.0567,
"homer_factor": 1.0349,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "800600",
"espn_id": 5007807,
"player_name": "Jackson Kent",
"team": "WSH",
"role": "pitcher",
"espn_rank": 731,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 731,
"gp_value": 6.0,
"gp_rank": "614",
"gs_value": 6.0,
"gs_rank": "208",
"qs_value": 1.0,
"qs_rank": "178",
"era_value": 6.5853,
"era_rank": null,
"w_value": 1.0,
"w_rank": "414",
"l_value": 4.0,
"l_rank": "190",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 27.1,
"ip_rank": "457",
"h_value": 30.0,
"h_rank": "420",
"er_value": 20.0,
"er_rank": "328",
"hr_value": 1.0,
"hr_rank": "617",
"bb_value": 20.0,
"bb_rank": "304",
"k_value": 23.0,
"k_rank": "463",
"k_per_9_value": 7.5731707,
"k_per_9_rank": 27.0,
"whip_value": 1.8292,
"whip_rank": null,
"war_value": -0.34,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0099,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0099,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0255,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0157,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9948,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260915_PHI@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_SD@COL | away | Walker Buehler | Walker Buehler | True | 5.1 | 4.2 | -2 | 3 | 2 | -1 | 3/7 | 2/1 | 3/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.6081730769230775,
"WHIP": 1.3557692307692308,
"IP": 138.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.782,
"recent_avg_IP": 4.867,
"last_start_IP": 2.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1243,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9629,
"walk_factor": 0.996,
"homer_factor": 1.0283,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 9.0,
"woba": 0.328,
"xwoba": 0.314,
"barrel_percent": 8.4,
"hard_hit_percent": 38.5,
"whiff_percent": 19.9
},
"espn_rank": {
"rank": 216,
"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": "621111",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 9.0,
"R": 9.0,
"H": 19.0,
"BB": 6.0,
"SO": 21.0,
"HR": 5.0,
"BF": 91.0,
"Pitches": 379.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 3.8,
"BB": 1.2,
"SO": 4.2,
"HR": 1.0,
"BF": 18.2,
"Pitches": 75.8
},
"rates": {
"ERA": 3.3288,
"WHIP": 1.0274,
"ER_per_IP": 0.36986,
"H_per_IP": 0.78082,
"BB_per_IP": 0.24658,
"SO_per_IP": 0.86301,
"HR_per_IP": 0.20548
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.2,
"ER": 18.0,
"R": 19.0,
"H": 42.0,
"BB": 18.0,
"SO": 40.0,
"HR": 7.0,
"BF": 200.0,
"Pitches": 814.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.9,
"H": 4.2,
"BB": 1.8,
"SO": 4.0,
"HR": 0.7,
"BF": 20.0,
"Pitches": 81.4
},
"rates": {
"ERA": 3.2617,
"WHIP": 1.2081,
"ER_per_IP": 0.36242,
"H_per_IP": 0.84564,
"BB_per_IP": 0.36242,
"SO_per_IP": 0.80537,
"HR_per_IP": 0.14094
}
},
"season": {
"games": 29,
"totals": {
"IP": 138.2,
"ER": 71.0,
"R": 72.0,
"H": 135.0,
"BB": 53.0,
"SO": 121.0,
"HR": 19.0,
"BF": 588.0,
"Pitches": 2354.0
},
"per_game": {
"IP": 4.2,
"ER": 2.4483,
"R": 2.4828,
"H": 4.6552,
"BB": 1.8276,
"SO": 4.1724,
"HR": 0.6552,
"BF": 20.2759,
"Pitches": 81.1724
},
"rates": {
"ERA": 4.6082,
"WHIP": 1.3558,
"ER_per_IP": 0.51202,
"H_per_IP": 0.97356,
"BB_per_IP": 0.38221,
"SO_per_IP": 0.8726,
"HR_per_IP": 0.13702
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.017,
"predicted_H": 4.218,
"predicted_BB": 1.581,
"predicted_SO": 4.203,
"predicted_HR": 0.812,
"predicted_ERA": 3.7096,
"predicted_WHIP": 1.1849
}
},
"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": 4.2,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.017,
"final": 2.4221,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.218,
"final": 3.716,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.581,
"final": 1.7537,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.203,
"final": 3.7072,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.812,
"final": 0.4773,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7096,
"final": 3.7096,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1849,
"final": 1.1849,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.2,
"ER": 18,
"H": 42,
"BB": 18,
"SO": 40,
"HR": 7,
"ERA": 3.2617449664429525,
"WHIP": 1.2080536912751676,
"K9": 7.248322147651006,
"HR9": 1.268456375838926,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8625128596510102,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "621111",
"player_name": "Walker Buehler",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.6667,
"after": 5.1,
"delta": 0.4333,
"percent_delta": 0.0929,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.1,
"delta": 0.4333,
"percent_delta": 0.0929,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 4.6667,
"after": 5.1,
"delta": 0.4333,
"percent_delta": 0.0928,
"direction": "boost",
"projection_effect": "better",
"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": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.1,
"delta": 0.4333,
"percent_delta": 0.0928,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 150,
"wins": 82,
"losses": 68,
"win_pct": 0.5467,
"runs_scored": 647.0,
"runs_allowed": 624.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1533,
"avg_runs_scored": 4.3133,
"avg_runs_allowed": 4.16,
"offense_index": 0.9601,
"defense_index": 1.0799,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1985
},
"opponent": {
"team": "COL",
"games": 150,
"wins": 55,
"losses": 95,
"win_pct": 0.3667,
"runs_scored": 703.0,
"runs_allowed": 873.0,
"run_differential": -170.0,
"run_differential_per_game": -1.1333,
"avg_runs_scored": 4.6867,
"avg_runs_allowed": 5.82,
"offense_index": 1.0432,
"defense_index": 0.7719,
"current_streak": "L8",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.8,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.3921
},
"edges": {
"quality_edge": 0.5906,
"offense_edge": -0.0399,
"opponent_offense_edge": 0.0432,
"defense_strength": 0.0799,
"opponent_defense_weakness": 0.2281,
"recent_win_pct_edge": 0.8
},
"player_factors": {
"ip": 1.0243,
"run_prevention": 0.9694,
"strikeout": 1.0143
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "621111",
"profile": {
"available": true,
"pitcher_id": "621111",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 20.6,
"bb_percent": 9.0,
"woba": 0.328,
"xwoba": 0.314,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 8.4,
"hard_hit_percent": 38.5,
"avg_best_speed": 79.062,
"avg_hyper_speed": 94.0945,
"whiff_percent": 19.9,
"swing_percent": 45.2
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1376,
"command_and_miss": -0.335,
"regression_edge": 0.4,
"xwoba_edge": -0.0571,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.0857,
"whiff_edge": -0.7286,
"bb_edge": 0.05,
"pitch_design_score": -0.0013
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "621111",
"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": 89.82523808865908,
"release_spin_rate": 2198.7999473917944,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.82523808865908,
"release_spin_rate": 2198.7999473917944,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8252,
"release_spin_rate": 2198.7999,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0013,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0094,
"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.1243,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9629,
"walk_factor": 0.996,
"homer_factor": 1.0283,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "621111",
"espn_id": 39251,
"player_name": "Walker Buehler",
"team": "SD",
"role": "pitcher",
"espn_rank": 216,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 216,
"gp_value": 29.0,
"gp_rank": "244",
"gs_value": 29.0,
"gs_rank": "14",
"qs_value": 6.0,
"qs_rank": "93",
"era_value": 4.6081,
"era_rank": null,
"w_value": 8.0,
"w_rank": "67",
"l_value": 6.0,
"l_rank": "114",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 138.2,
"ip_rank": "63",
"h_value": 135.0,
"h_rank": "50",
"er_value": 71.0,
"er_rank": "27",
"hr_value": 19.0,
"hr_rank": "52",
"bb_value": 53.0,
"bb_rank": "32",
"k_value": 121.0,
"k_rank": "67",
"k_per_9_value": 7.8533654,
"k_per_9_rank": 28.0,
"whip_value": 1.3557,
"whip_rank": null,
"war_value": 0.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0106,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0106,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.996,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0283,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9629,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
}
],
"provenance": {
"prediction": "output/games/20260915_SD@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"
}
} |
| 20260915 | 20260915_SD@COL | home | Kyle Freeland | Kyle Freeland | True | 4.2 | 4.0 | -2 | 7 | 3 | -4 | 11/8 | 2/0 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.369973190348525,
"WHIP": 1.4557640750670242,
"IP": 124.1,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.406,
"recent_avg_IP": 6.067,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4537,
"sample_weight": 1.0,
"run_prevention_factor": 1.0386,
"strikeout_factor": 0.9663,
"walk_factor": 0.918,
"homer_factor": 1.1171,
"regression_flag": "neutral",
"k_percent": 18.6,
"bb_percent": 5.1,
"woba": 0.371,
"xwoba": 0.346,
"barrel_percent": 10.6,
"hard_hit_percent": 42.4,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 538,
"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": "607536",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.1,
"ER": 12.0,
"R": 14.0,
"H": 26.0,
"BB": 8.0,
"SO": 20.0,
"HR": 4.0,
"BF": 125.0,
"Pitches": 464.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.8,
"H": 5.2,
"BB": 1.6,
"SO": 4.0,
"HR": 0.8,
"BF": 25.0,
"Pitches": 92.8
},
"rates": {
"ERA": 3.5604,
"WHIP": 1.1209,
"ER_per_IP": 0.3956,
"H_per_IP": 0.85714,
"BB_per_IP": 0.26374,
"SO_per_IP": 0.65934,
"HR_per_IP": 0.13187
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 34.0,
"R": 36.0,
"H": 65.0,
"BB": 12.0,
"SO": 46.0,
"HR": 10.0,
"BF": 249.0,
"Pitches": 885.0
},
"per_game": {
"IP": 6.0,
"ER": 3.4,
"R": 3.6,
"H": 6.5,
"BB": 1.2,
"SO": 4.6,
"HR": 1.0,
"BF": 24.9,
"Pitches": 88.5
},
"rates": {
"ERA": 5.2457,
"WHIP": 1.32,
"ER_per_IP": 0.58286,
"H_per_IP": 1.11429,
"BB_per_IP": 0.20571,
"SO_per_IP": 0.78857,
"HR_per_IP": 0.17143
}
},
"season": {
"games": 23,
"totals": {
"IP": 124.1,
"ER": 88.0,
"R": 92.0,
"H": 153.0,
"BB": 28.0,
"SO": 103.0,
"HR": 24.0,
"BF": 554.0,
"Pitches": 2006.0
},
"per_game": {
"IP": 5.1,
"ER": 3.8261,
"R": 4.0,
"H": 6.6522,
"BB": 1.2174,
"SO": 4.4783,
"HR": 1.0435,
"BF": 24.087,
"Pitches": 87.2174
},
"rates": {
"ERA": 6.37,
"WHIP": 1.4558,
"ER_per_IP": 0.70777,
"H_per_IP": 1.23056,
"BB_per_IP": 0.2252,
"SO_per_IP": 0.82842,
"HR_per_IP": 0.19303
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.036,
"predicted_H": 5.911,
"predicted_BB": 1.519,
"predicted_SO": 4.515,
"predicted_HR": 0.91,
"predicted_ERA": 4.6868,
"predicted_WHIP": 1.2742
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 8.0,
"form": 3.036,
"final": 5.148,
"source": "model_form_blend"
},
"predicted_H": {
"model": 11.0,
"form": 5.911,
"final": 8.0762,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.519,
"final": 1.7236,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.515,
"final": 4.7213,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.91,
"final": 0.9483,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6868,
"final": 4.6868,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2742,
"final": 1.2742,
"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.1,
"ER": 34,
"H": 65,
"BB": 12,
"SO": 46,
"HR": 10,
"ERA": 5.245714285714286,
"WHIP": 1.32,
"K9": 7.097142857142858,
"HR9": 1.542857142857143,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.088508065787156,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 8.0,
"predicted_H": 11.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 1.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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 8,
"predicted_H": 11,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "607536",
"player_name": "Kyle Freeland",
"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": 8.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 8.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.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": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"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": 8.0,
"predicted_H": 11.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 8.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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.2,
"after": 4.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 11.0,
"after": 11.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": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 4.2,
"delta": -1.4667,
"percent_delta": -0.2588,
"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": 150,
"wins": 55,
"losses": 95,
"win_pct": 0.3667,
"runs_scored": 703.0,
"runs_allowed": 873.0,
"run_differential": -170.0,
"run_differential_per_game": -1.1333,
"avg_runs_scored": 4.6867,
"avg_runs_allowed": 5.82,
"offense_index": 1.0432,
"defense_index": 0.7719,
"current_streak": "L8",
"recent": {
"games": 10,
"wins": 1,
"losses": 9,
"win_pct": 0.1,
"avg_runs_scored": 4.8,
"avg_runs_allowed": 7.8,
"run_differential": -30.0
},
"available": true,
"quality_score": -0.3921
},
"opponent": {
"team": "SD",
"games": 150,
"wins": 82,
"losses": 68,
"win_pct": 0.5467,
"runs_scored": 647.0,
"runs_allowed": 624.0,
"run_differential": 23.0,
"run_differential_per_game": 0.1533,
"avg_runs_scored": 4.3133,
"avg_runs_allowed": 4.16,
"offense_index": 0.9601,
"defense_index": 1.0799,
"current_streak": "W8",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 4.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1985
},
"edges": {
"quality_edge": -0.5906,
"offense_edge": 0.0432,
"opponent_offense_edge": -0.0399,
"defense_strength": -0.2281,
"opponent_defense_weakness": -0.0799,
"recent_win_pct_edge": -0.8
},
"player_factors": {
"ip": 0.9711,
"run_prevention": 1.046,
"strikeout": 0.9855
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "607536",
"profile": {
"available": true,
"pitcher_id": "607536",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 513.0,
"k_percent": 18.6,
"bb_percent": 5.1,
"woba": 0.371,
"xwoba": 0.346,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 10.6,
"hard_hit_percent": 42.4,
"avg_best_speed": 79.2489,
"avg_hyper_speed": 95.047,
"whiff_percent": 22.5,
"swing_percent": 50.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8514,
"command_and_miss": -0.1386,
"regression_edge": 0.7143,
"xwoba_edge": -0.9714,
"barrel_edge": -0.7778,
"hard_hit_edge": -0.6429,
"whiff_edge": -0.3571,
"bb_edge": 1.025,
"pitch_design_score": -0.1538
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "607536",
"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": 87.10210294355855,
"release_spin_rate": 2262.0656013439943,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.10210294355855,
"release_spin_rate": 2262.0656013439943,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1021,
"release_spin_rate": 2262.0656,
"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.1538,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0987,
"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.4537,
"sample_weight": 1.0,
"run_prevention_factor": 1.0386,
"strikeout_factor": 0.9663,
"walk_factor": 0.918,
"homer_factor": 1.1171,
"woba_minus_xwoba": 0.025,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "607536",
"espn_id": 33839,
"player_name": "Kyle Freeland",
"team": "COL",
"role": "pitcher",
"espn_rank": 538,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 538,
"gp_value": 23.0,
"gp_rank": "353",
"gs_value": 23.0,
"gs_rank": "81",
"qs_value": 4.0,
"qs_rank": "125",
"era_value": 6.3699,
"era_rank": null,
"w_value": 4.0,
"w_rank": "192",
"l_value": 10.0,
"l_rank": "21",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 124.1,
"ip_rank": "88",
"h_value": 153.0,
"h_rank": "17",
"er_value": 88.0,
"er_rank": "5",
"hr_value": 24.0,
"hr_rank": "15",
"bb_value": 28.0,
"bb_rank": "191",
"k_value": 103.0,
"k_rank": "97",
"k_per_9_value": 7.4557643,
"k_per_9_rank": 29.0,
"whip_value": 1.4557,
"whip_rank": null,
"war_value": -0.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0386,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0386,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.918,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1171,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9663,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 11,
"predicted_R": 8,
"predicted_ER": 8,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 109,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260915_SD@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"
}
} |
| 20260915 | 20260915_SEA@LAA | away | Logan Gilbert | Logan Gilbert | True | 5.2 | 6.0 | 1 | 1 | 2 | 1 | 5/6 | 2/2 | 8/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7151162790697674,
"WHIP": 1.052325581395349,
"IP": 172.0,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 5.931,
"recent_avg_IP": 5.333,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2298,
"sample_weight": 1.0,
"run_prevention_factor": 0.9805,
"strikeout_factor": 1.0606,
"walk_factor": 0.944,
"homer_factor": 1.0605,
"regression_flag": "neutral",
"k_percent": 27.3,
"bb_percent": 6.4,
"woba": 0.296,
"xwoba": 0.295,
"barrel_percent": 10.2,
"hard_hit_percent": 41.4,
"whiff_percent": 30.3
},
"espn_rank": {
"rank": 40,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669302",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 18.0,
"R": 18.0,
"H": 26.0,
"BB": 11.0,
"SO": 35.0,
"HR": 8.0,
"BF": 115.0,
"Pitches": 488.0
},
"per_game": {
"IP": 5.1,
"ER": 3.6,
"R": 3.6,
"H": 5.2,
"BB": 2.2,
"SO": 7.0,
"HR": 1.6,
"BF": 23.0,
"Pitches": 97.6
},
"rates": {
"ERA": 6.075,
"WHIP": 1.3875,
"ER_per_IP": 0.675,
"H_per_IP": 0.975,
"BB_per_IP": 0.4125,
"SO_per_IP": 1.3125,
"HR_per_IP": 0.3
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.0,
"ER": 29.0,
"R": 29.0,
"H": 48.0,
"BB": 20.0,
"SO": 68.0,
"HR": 13.0,
"BF": 237.0,
"Pitches": 962.0
},
"per_game": {
"IP": 5.2,
"ER": 2.9,
"R": 2.9,
"H": 4.8,
"BB": 2.0,
"SO": 6.8,
"HR": 1.3,
"BF": 23.7,
"Pitches": 96.2
},
"rates": {
"ERA": 4.5,
"WHIP": 1.1724,
"ER_per_IP": 0.5,
"H_per_IP": 0.82759,
"BB_per_IP": 0.34483,
"SO_per_IP": 1.17241,
"HR_per_IP": 0.22414
}
},
"season": {
"games": 29,
"totals": {
"IP": 172.0,
"ER": 71.0,
"R": 71.0,
"H": 137.0,
"BB": 44.0,
"SO": 187.0,
"HR": 27.0,
"BF": 686.0,
"Pitches": 2745.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4483,
"R": 2.4483,
"H": 4.7241,
"BB": 1.5172,
"SO": 6.4483,
"HR": 0.931,
"BF": 23.6552,
"Pitches": 94.6552
},
"rates": {
"ERA": 3.7151,
"WHIP": 1.0523,
"ER_per_IP": 0.41279,
"H_per_IP": 0.79651,
"BB_per_IP": 0.25581,
"SO_per_IP": 1.08721,
"HR_per_IP": 0.15698
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 3.097,
"predicted_H": 5.04,
"predicted_BB": 2.014,
"predicted_SO": 6.588,
"predicted_HR": 1.29,
"predicted_ERA": 4.9809,
"predicted_WHIP": 1.2607
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 3.097,
"final": 2.2327,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.04,
"final": 5.0235,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.014,
"final": 2.0082,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 6.588,
"final": 7.17,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.29,
"final": 0.7583,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9809,
"final": 4.9809,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2607,
"final": 1.2607,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.0,
"ER": 29,
"H": 48,
"BB": 20,
"SO": 68,
"HR": 13,
"ERA": 4.5,
"WHIP": 1.1724137931034482,
"K9": 10.551724137931034,
"HR9": 2.0172413793103448,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-10T00:00:00"
},
"recent_form_boost": 1.000925553471885,
"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": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 1,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669302",
"player_name": "Logan Gilbert",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SEA",
"games": 151,
"wins": 70,
"losses": 81,
"win_pct": 0.4636,
"runs_scored": 616.0,
"runs_allowed": 676.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3974,
"avg_runs_scored": 4.0795,
"avg_runs_allowed": 4.4768,
"offense_index": 0.9066,
"defense_index": 1.0051,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.9,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1145
},
"opponent": {
"team": "LAA",
"games": 150,
"wins": 57,
"losses": 93,
"win_pct": 0.38,
"runs_scored": 610.0,
"runs_allowed": 684.0,
"run_differential": -74.0,
"run_differential_per_game": -0.4933,
"avg_runs_scored": 4.0667,
"avg_runs_allowed": 4.56,
"offense_index": 0.9037,
"defense_index": 0.9868,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.3,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.1973
},
"edges": {
"quality_edge": 0.0828,
"offense_edge": -0.0934,
"opponent_offense_edge": -0.0963,
"defense_strength": 0.0051,
"opponent_defense_weakness": 0.0132,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0073,
"run_prevention": 0.9799,
"strikeout": 1.0102
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669302",
"profile": {
"available": true,
"pitcher_id": "669302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 656.0,
"k_percent": 27.3,
"bb_percent": 6.4,
"woba": 0.296,
"xwoba": 0.295,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 41.4,
"avg_best_speed": 79.0168,
"avg_hyper_speed": 94.4102,
"whiff_percent": 30.3,
"swing_percent": 50.3
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0602,
"command_and_miss": 0.7457,
"regression_edge": 0.0286,
"xwoba_edge": 0.4857,
"barrel_edge": -0.6889,
"hard_hit_edge": -0.5,
"whiff_edge": 0.7571,
"bb_edge": 0.7,
"pitch_design_score": -0.0086
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669302",
"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": 89.69530475777378,
"release_spin_rate": 1936.1985498440918,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.69530475777378,
"release_spin_rate": 1936.1985498440918,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6953,
"release_spin_rate": 1936.1985,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0086,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0614,
"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.2298,
"sample_weight": 1.0,
"run_prevention_factor": 0.9805,
"strikeout_factor": 1.0606,
"walk_factor": 0.944,
"homer_factor": 1.0605,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669302",
"espn_id": 41221,
"player_name": "Logan Gilbert",
"team": "SEA",
"role": "pitcher",
"espn_rank": 40,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 40,
"gp_value": 29.0,
"gp_rank": "244",
"gs_value": 29.0,
"gs_rank": "14",
"qs_value": 13.0,
"qs_rank": "31",
"era_value": 3.7151,
"era_rank": 24.0,
"w_value": 12.0,
"w_rank": "17",
"l_value": 9.0,
"l_rank": "32",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 172.0,
"ip_rank": "9",
"h_value": 137.0,
"h_rank": "45",
"er_value": 71.0,
"er_rank": "27",
"hr_value": 27.0,
"hr_rank": "7",
"bb_value": 44.0,
"bb_rank": "68",
"k_value": 187.0,
"k_rank": "11",
"k_per_9_value": 9.7848835,
"k_per_9_rank": 33.0,
"whip_value": 1.0523,
"whip_rank": 10.0,
"war_value": 2.86,
"war_rank": 25.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9805,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9805,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0605,
"adjusted": 1
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0606,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"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/20260915_SEA@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_SEA@LAA | home | Ryan Johnson | Ryan Johnson | True | 5.1 | 6.0 | 2 | 5 | 1 | -4 | 7/6 | 2/0 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.122529644268775,
"WHIP": 1.3636363636363638,
"IP": 84.1,
"games_started": null,
"games_pitched": 19,
"role_avg_IP": 4.958,
"recent_avg_IP": 5.867,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.4806,
"sample_weight": 1.0,
"run_prevention_factor": 1.0408,
"strikeout_factor": 0.9611,
"walk_factor": 1.03,
"homer_factor": 1.0782,
"regression_flag": "neutral",
"k_percent": 17.4,
"bb_percent": 10.7,
"woba": 0.336,
"xwoba": 0.347,
"barrel_percent": 10.1,
"hard_hit_percent": 37.0,
"whiff_percent": 22.8
},
"espn_rank": {
"rank": 635,
"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": "696270",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 19,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 7.0,
"R": 7.0,
"H": 17.0,
"BB": 12.0,
"SO": 20.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 453.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 2.4,
"SO": 4.0,
"HR": 0.8,
"BF": 22.8,
"Pitches": 90.6
},
"rates": {
"ERA": 2.1477,
"WHIP": 0.9886,
"ER_per_IP": 0.23864,
"H_per_IP": 0.57955,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.68182,
"HR_per_IP": 0.13636
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 23.0,
"R": 23.0,
"H": 39.0,
"BB": 26.0,
"SO": 38.0,
"HR": 9.0,
"BF": 214.0,
"Pitches": 863.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.3,
"H": 3.9,
"BB": 2.6,
"SO": 3.8,
"HR": 0.9,
"BF": 21.4,
"Pitches": 86.3
},
"rates": {
"ERA": 4.0588,
"WHIP": 1.2745,
"ER_per_IP": 0.45098,
"H_per_IP": 0.76471,
"BB_per_IP": 0.5098,
"SO_per_IP": 0.7451,
"HR_per_IP": 0.17647
}
},
"season": {
"games": 19,
"totals": {
"IP": 84.1,
"ER": 48.0,
"R": 53.0,
"H": 76.0,
"BB": 39.0,
"SO": 63.0,
"HR": 18.0,
"BF": 363.0,
"Pitches": 1455.0
},
"per_game": {
"IP": 4.1,
"ER": 2.5263,
"R": 2.7895,
"H": 4.0,
"BB": 2.0526,
"SO": 3.3158,
"HR": 0.9474,
"BF": 19.1053,
"Pitches": 76.5789
},
"rates": {
"ERA": 5.1225,
"WHIP": 1.3636,
"ER_per_IP": 0.56917,
"H_per_IP": 0.90119,
"BB_per_IP": 0.46245,
"SO_per_IP": 0.74704,
"HR_per_IP": 0.21344
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.159,
"predicted_H": 4.067,
"predicted_BB": 2.331,
"predicted_SO": 4.062,
"predicted_HR": 0.862,
"predicted_ERA": 3.6528,
"predicted_WHIP": 1.2026
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.438,
"form_weight": 0.562,
"form_reliability": 0.7917,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7917,
"prior_weight": 0.2083
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.159,
"final": 3.4034,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.067,
"final": 5.3517,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.331,
"final": 2.186,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.062,
"final": 4.9109,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.862,
"final": 1.3605,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6528,
"final": 3.6528,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2026,
"final": 1.2026,
"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": 23,
"H": 39,
"BB": 26,
"SO": 38,
"HR": 9,
"ERA": 4.0588235294117645,
"WHIP": 1.2745098039215685,
"K9": 6.705882352941177,
"HR9": 1.588235294117647,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.9538456008011615,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_BB": 2.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": "696270",
"player_name": "Ryan Johnson",
"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": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 7.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 5.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": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "LAA",
"games": 150,
"wins": 57,
"losses": 93,
"win_pct": 0.38,
"runs_scored": 610.0,
"runs_allowed": 684.0,
"run_differential": -74.0,
"run_differential_per_game": -0.4933,
"avg_runs_scored": 4.0667,
"avg_runs_allowed": 4.56,
"offense_index": 0.9037,
"defense_index": 0.9868,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.3,
"run_differential": 6.0
},
"available": true,
"quality_score": -0.1973
},
"opponent": {
"team": "SEA",
"games": 151,
"wins": 70,
"losses": 81,
"win_pct": 0.4636,
"runs_scored": 616.0,
"runs_allowed": 676.0,
"run_differential": -60.0,
"run_differential_per_game": -0.3974,
"avg_runs_scored": 4.0795,
"avg_runs_allowed": 4.4768,
"offense_index": 0.9066,
"defense_index": 1.0051,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 4.9,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.1145
},
"edges": {
"quality_edge": -0.0828,
"offense_edge": -0.0963,
"opponent_offense_edge": -0.0934,
"defense_strength": -0.0132,
"opponent_defense_weakness": -0.0051,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9905,
"strikeout": 1.005
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696270",
"profile": {
"available": true,
"pitcher_id": "696270",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 338.0,
"k_percent": 17.4,
"bb_percent": 10.7,
"woba": 0.336,
"xwoba": 0.347,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 37.0,
"avg_best_speed": 77.0545,
"avg_hyper_speed": 93.7219,
"whiff_percent": 22.8,
"swing_percent": 45.5
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5564,
"command_and_miss": -0.4807,
"regression_edge": -0.3143,
"xwoba_edge": -1.0,
"barrel_edge": -0.6667,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.3143,
"bb_edge": -0.375,
"pitch_design_score": -0.1571
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696270",
"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": 87.04306695722545,
"release_spin_rate": 2286.6017564680933,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.04306695722545,
"release_spin_rate": 2286.6017564680933,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0431,
"release_spin_rate": 2286.6018,
"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.1571,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1223,
"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.4806,
"sample_weight": 1.0,
"run_prevention_factor": 1.0408,
"strikeout_factor": 0.9611,
"walk_factor": 1.03,
"homer_factor": 1.0782,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696270",
"espn_id": 5007859,
"player_name": "Ryan Johnson",
"team": "LAA",
"role": "pitcher",
"espn_rank": 635,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 635,
"gp_value": 19.0,
"gp_rank": "407",
"gs_value": 16.0,
"gs_rank": "132",
"qs_value": 4.0,
"qs_rank": "125",
"era_value": 5.1225,
"era_rank": null,
"w_value": 4.0,
"w_rank": "192",
"l_value": 8.0,
"l_rank": "64",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 84.1,
"ip_rank": "155",
"h_value": 76.0,
"h_rank": "154",
"er_value": 48.0,
"er_rank": "120",
"hr_value": 18.0,
"hr_rank": "62",
"bb_value": 39.0,
"bb_rank": "96",
"k_value": 63.0,
"k_rank": "215",
"k_per_9_value": 6.7233205,
"k_per_9_rank": 37.0,
"whip_value": 1.3636,
"whip_rank": null,
"war_value": -0.16,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0408,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0408,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.03,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0782,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9611,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "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/20260915_SEA@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_SF@STL | away | Blade Tidwell | Blade Tidwell | True | 5.0 | 6.2 | 5 | 4 | 2 | -2 | 1/3 | 5/1 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.821428571428572,
"WHIP": 1.2857142857142858,
"IP": 46.2,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 4.952,
"recent_avg_IP": 4.8,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1476,
"sample_weight": 0.704,
"run_prevention_factor": 1.0125,
"strikeout_factor": 0.9779,
"walk_factor": 1.0141,
"homer_factor": 1.0406,
"regression_flag": "neutral",
"k_percent": 19.3,
"bb_percent": 10.2,
"woba": 0.317,
"xwoba": 0.324,
"barrel_percent": 9.7,
"hard_hit_percent": 38.1,
"whiff_percent": 22.2
},
"espn_rank": {
"rank": 479,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694918",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.0,
"ER": 18.0,
"R": 19.0,
"H": 20.0,
"BB": 15.0,
"SO": 19.0,
"HR": 5.0,
"BF": 106.0,
"Pitches": 429.0
},
"per_game": {
"IP": 4.2,
"ER": 3.6,
"R": 3.8,
"H": 4.0,
"BB": 3.0,
"SO": 3.8,
"HR": 1.0,
"BF": 21.2,
"Pitches": 85.8
},
"rates": {
"ERA": 6.75,
"WHIP": 1.4583,
"ER_per_IP": 0.75,
"H_per_IP": 0.83333,
"BB_per_IP": 0.625,
"SO_per_IP": 0.79167,
"HR_per_IP": 0.20833
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 39.2,
"ER": 23.0,
"R": 24.0,
"H": 35.0,
"BB": 19.0,
"SO": 32.0,
"HR": 5.0,
"BF": 172.0,
"Pitches": 707.0
},
"per_game": {
"IP": 4.0,
"ER": 2.3,
"R": 2.4,
"H": 3.5,
"BB": 1.9,
"SO": 3.2,
"HR": 0.5,
"BF": 17.2,
"Pitches": 70.7
},
"rates": {
"ERA": 5.2185,
"WHIP": 1.3613,
"ER_per_IP": 0.57983,
"H_per_IP": 0.88235,
"BB_per_IP": 0.47899,
"SO_per_IP": 0.80672,
"HR_per_IP": 0.12605
}
},
"season": {
"games": 15,
"totals": {
"IP": 46.2,
"ER": 25.0,
"R": 26.0,
"H": 40.0,
"BB": 20.0,
"SO": 38.0,
"HR": 6.0,
"BF": 197.0,
"Pitches": 807.0
},
"per_game": {
"IP": 3.0,
"ER": 1.6667,
"R": 1.7333,
"H": 2.6667,
"BB": 1.3333,
"SO": 2.5333,
"HR": 0.4,
"BF": 13.1333,
"Pitches": 53.8
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.2857,
"ER_per_IP": 0.53571,
"H_per_IP": 0.85714,
"BB_per_IP": 0.42857,
"SO_per_IP": 0.81429,
"HR_per_IP": 0.12857
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.65,
"predicted_H": 3.83,
"predicted_BB": 2.139,
"predicted_SO": 3.616,
"predicted_HR": 0.69,
"predicted_ERA": 5.5137,
"predicted_WHIP": 1.38
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4556,
"form_weight": 0.5444,
"form_reliability": 0.75,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.65,
"final": 3.2651,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.83,
"final": 2.5406,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.139,
"final": 3.4425,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.616,
"final": 4.2466,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.69,
"final": 0.3756,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5137,
"final": 5.5137,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.38,
"final": 1.38,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 39.2,
"ER": 23,
"H": 35,
"BB": 19,
"SO": 32,
"HR": 5,
"ERA": 5.218487394957982,
"WHIP": 1.3613445378151259,
"K9": 7.260504201680671,
"HR9": 1.134453781512605,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 1.08647865402245,
"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": 1.0,
"predicted_BB": 5.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694918",
"player_name": "Blade Tidwell",
"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": 5.0,
"predicted_ER": 4.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 4.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 151,
"wins": 62,
"losses": 89,
"win_pct": 0.4106,
"runs_scored": 633.0,
"runs_allowed": 711.0,
"run_differential": -78.0,
"run_differential_per_game": -0.5166,
"avg_runs_scored": 4.1921,
"avg_runs_allowed": 4.7086,
"offense_index": 0.934,
"defense_index": 0.9532,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.2,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1743
},
"opponent": {
"team": "STL",
"games": 151,
"wins": 75,
"losses": 76,
"win_pct": 0.4967,
"runs_scored": 685.0,
"runs_allowed": 691.0,
"run_differential": -6.0,
"run_differential_per_game": -0.0397,
"avg_runs_scored": 4.5364,
"avg_runs_allowed": 4.5762,
"offense_index": 1.0107,
"defense_index": 0.9808,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.9,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0077
},
"edges": {
"quality_edge": -0.1666,
"offense_edge": -0.066,
"opponent_offense_edge": 0.0107,
"defense_strength": -0.0468,
"opponent_defense_weakness": 0.0192,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9915,
"run_prevention": 1.0147,
"strikeout": 0.9941
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694918",
"profile": {
"available": true,
"pitcher_id": "694918",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 176.0,
"k_percent": 19.3,
"bb_percent": 10.2,
"woba": 0.317,
"xwoba": 0.324,
"sweet_spot_percent": 28.4,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 38.1,
"avg_best_speed": 77.1473,
"avg_hyper_speed": 93.9607,
"whiff_percent": 22.2,
"swing_percent": 44.1
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1662,
"command_and_miss": -0.3636,
"regression_edge": -0.2,
"xwoba_edge": -0.3429,
"barrel_edge": -0.5778,
"hard_hit_edge": -0.0286,
"whiff_edge": -0.4,
"bb_edge": -0.25,
"pitch_design_score": -0.026
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694918",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 89,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.3845654173041,
"release_spin_rate": 2460.0556825721287,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 89,
"pitch_usage": 0.0,
"release_speed": 89.3845654173041,
"release_spin_rate": 2460.0556825721287,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3846,
"release_spin_rate": 2460.0557,
"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.026,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1857,
"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.1476,
"sample_weight": 0.704,
"run_prevention_factor": 1.0125,
"strikeout_factor": 0.9779,
"walk_factor": 1.0141,
"homer_factor": 1.0406,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "694918",
"espn_id": 4719088,
"player_name": "Blade Tidwell",
"team": "SF",
"role": "pitcher",
"espn_rank": 479,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 479,
"gp_value": 15.0,
"gp_rank": "459",
"gs_value": 7.0,
"gs_rank": "200",
"qs_value": 0.0,
"qs_rank": "210",
"era_value": 4.8214,
"era_rank": null,
"w_value": 0.0,
"w_rank": "538",
"l_value": 2.0,
"l_rank": "332",
"sv_value": 1.0,
"sv_rank": "140",
"hld_value": 1.0,
"hld_rank": "272",
"ip_value": 46.2,
"ip_rank": "327",
"h_value": 40.0,
"h_rank": "328",
"er_value": 25.0,
"er_rank": "245",
"hr_value": 6.0,
"hr_rank": "273",
"bb_value": 20.0,
"bb_rank": "304",
"k_value": 38.0,
"k_rank": "366",
"k_per_9_value": 7.328572,
"k_per_9_rank": 30.0,
"whip_value": 1.2857,
"whip_rank": null,
"war_value": 0.01,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0088,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0088,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0099,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0286,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9844,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 5,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -4."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260915_SF@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260915 | 20260915_SF@STL | home | Andre Pallante | Andre Pallante | True | 5.2 | 5.0 | -2 | 4 | 6 | 2 | 5/8 | 2/2 | 5/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.452054794520548,
"WHIP": 1.2328767123287672,
"IP": 146.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.615,
"recent_avg_IP": 5.467,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.073,
"sample_weight": 1.0,
"run_prevention_factor": 0.9938,
"strikeout_factor": 0.9503,
"walk_factor": 0.966,
"homer_factor": 0.9332,
"regression_flag": "neutral",
"k_percent": 16.9,
"bb_percent": 7.5,
"woba": 0.297,
"xwoba": 0.305,
"barrel_percent": 4.9,
"hard_hit_percent": 34.1,
"whiff_percent": 21.4
},
"espn_rank": {
"rank": 49,
"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": "669467",
"report_date": "20260915",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.1,
"ER": 7.0,
"R": 7.0,
"H": 24.0,
"BB": 11.0,
"SO": 16.0,
"HR": 0.0,
"BF": 106.0,
"Pitches": 448.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 4.8,
"BB": 2.2,
"SO": 3.2,
"HR": 0.0,
"BF": 21.2,
"Pitches": 89.6
},
"rates": {
"ERA": 2.3049,
"WHIP": 1.2805,
"ER_per_IP": 0.2561,
"H_per_IP": 0.87805,
"BB_per_IP": 0.40244,
"SO_per_IP": 0.58537,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 18.0,
"R": 18.0,
"H": 51.0,
"BB": 19.0,
"SO": 34.0,
"HR": 1.0,
"BF": 228.0,
"Pitches": 915.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.1,
"BB": 1.9,
"SO": 3.4,
"HR": 0.1,
"BF": 22.8,
"Pitches": 91.5
},
"rates": {
"ERA": 2.8588,
"WHIP": 1.2353,
"ER_per_IP": 0.31765,
"H_per_IP": 0.9,
"BB_per_IP": 0.33529,
"SO_per_IP": 0.6,
"HR_per_IP": 0.01765
}
},
"season": {
"games": 26,
"totals": {
"IP": 146.0,
"ER": 56.0,
"R": 58.0,
"H": 135.0,
"BB": 45.0,
"SO": 102.0,
"HR": 10.0,
"BF": 602.0,
"Pitches": 2363.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1538,
"R": 2.2308,
"H": 5.1923,
"BB": 1.7308,
"SO": 3.9231,
"HR": 0.3846,
"BF": 23.1538,
"Pitches": 90.8846
},
"rates": {
"ERA": 3.4521,
"WHIP": 1.2329,
"ER_per_IP": 0.38356,
"H_per_IP": 0.92466,
"BB_per_IP": 0.30822,
"SO_per_IP": 0.69863,
"HR_per_IP": 0.06849
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.863,
"predicted_H": 5.032,
"predicted_BB": 2.008,
"predicted_SO": 3.689,
"predicted_HR": 0.224,
"predicted_ERA": 3.0253,
"predicted_WHIP": 1.2706
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.863,
"final": 2.7566,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.032,
"final": 5.0186,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.008,
"final": 2.0047,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.689,
"final": 4.2372,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.224,
"final": 0.9666,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0253,
"final": 3.0253,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2706,
"final": 1.2706,
"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": 18,
"H": 51,
"BB": 19,
"SO": 34,
"HR": 1,
"ERA": 2.8588235294117648,
"WHIP": 1.2352941176470589,
"K9": 5.4,
"HR9": 0.15882352941176472,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-09T00:00:00"
},
"recent_form_boost": 0.8178652086442988,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669467",
"player_name": "Andre Pallante",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 151,
"wins": 75,
"losses": 76,
"win_pct": 0.4967,
"runs_scored": 685.0,
"runs_allowed": 691.0,
"run_differential": -6.0,
"run_differential_per_game": -0.0397,
"avg_runs_scored": 4.5364,
"avg_runs_allowed": 4.5762,
"offense_index": 1.0107,
"defense_index": 0.9808,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.9,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0077
},
"opponent": {
"team": "SF",
"games": 151,
"wins": 62,
"losses": 89,
"win_pct": 0.4106,
"runs_scored": 633.0,
"runs_allowed": 711.0,
"run_differential": -78.0,
"run_differential_per_game": -0.5166,
"avg_runs_scored": 4.1921,
"avg_runs_allowed": 4.7086,
"offense_index": 0.934,
"defense_index": 0.9532,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 5.2,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.1743
},
"edges": {
"quality_edge": 0.1666,
"offense_edge": 0.0107,
"opponent_offense_edge": -0.066,
"defense_strength": -0.0192,
"opponent_defense_weakness": 0.0468,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0087,
"run_prevention": 0.983,
"strikeout": 1.0103
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669467",
"profile": {
"available": true,
"pitcher_id": "669467",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 580.0,
"k_percent": 16.9,
"bb_percent": 7.5,
"woba": 0.297,
"xwoba": 0.305,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 34.1,
"avg_best_speed": 75.5214,
"avg_hyper_speed": 93.4608,
"whiff_percent": 21.4,
"swing_percent": 44.9
},
"league_medians": {
"pa": 132.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6536,
"avg_hyper_speed": 93.9166,
"whiff_percent": 25.0,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3667,
"command_and_miss": -0.4229,
"regression_edge": -0.2286,
"xwoba_edge": 0.2,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5429,
"whiff_edge": -0.5143,
"bb_edge": 0.425,
"pitch_design_score": 0.0051
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669467",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 90,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.94053557792428,
"release_spin_rate": 2285.0380996718536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 90,
"pitch_usage": 0.0,
"release_speed": 89.94053557792428,
"release_spin_rate": 2285.0380996718536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9405,
"release_spin_rate": 2285.0381,
"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.0051,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0367,
"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.073,
"sample_weight": 1.0,
"run_prevention_factor": 0.9938,
"strikeout_factor": 0.9503,
"walk_factor": 0.966,
"homer_factor": 0.9332,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669467",
"espn_id": 4109034,
"player_name": "Andre Pallante",
"team": "STL",
"role": "pitcher",
"espn_rank": 49,
"espn_total_ranked": 861,
"metrics": {
"espn_rank": 49,
"gp_value": 26.0,
"gp_rank": "313",
"gs_value": 26.0,
"gs_rank": "56",
"qs_value": 9.0,
"qs_rank": "66",
"era_value": 3.452,
"era_rank": null,
"w_value": 12.0,
"w_rank": "17",
"l_value": 6.0,
"l_rank": "114",
"sv_value": 0.0,
"sv_rank": "251",
"hld_value": 0.0,
"hld_rank": "354",
"ip_value": 146.0,
"ip_rank": "53",
"h_value": 135.0,
"h_rank": "50",
"er_value": 56.0,
"er_rank": "89",
"hr_value": 10.0,
"hr_rank": "164",
"bb_value": 45.0,
"bb_rank": "65",
"k_value": 102.0,
"k_rank": "99",
"k_per_9_value": 6.2876716,
"k_per_9_rank": 50.0,
"whip_value": 1.2328,
"whip_rank": null,
"war_value": 2.67,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9938,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9938,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9332,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9503,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 100,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260915_SF@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |