| 20260826 | 20260826_BAL@STL | away | Kyle Bradish | Kyle Bradish | True | 5.2 | 4.1 | -4 | 1 | 7 | 6 | 2/9 | 0/2 | 5/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.699519230769231,
"WHIP": 1.3774038461538463,
"IP": 138.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.547,
"recent_avg_IP": 5.067,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0668,
"sample_weight": 1.0,
"run_prevention_factor": 1.0057,
"strikeout_factor": 0.9949,
"walk_factor": 1.02,
"homer_factor": 1.0243,
"regression_flag": "neutral",
"k_percent": 22.0,
"bb_percent": 10.2,
"woba": 0.323,
"xwoba": 0.318,
"barrel_percent": 8.0,
"hard_hit_percent": 38.2,
"whiff_percent": 24.3
},
"espn_rank": {
"rank": 93,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680694",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 13.0,
"R": 16.0,
"H": 32.0,
"BB": 9.0,
"SO": 19.0,
"HR": 3.0,
"BF": 110.0,
"Pitches": 437.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 3.2,
"H": 6.4,
"BB": 1.8,
"SO": 3.8,
"HR": 0.6,
"BF": 22.0,
"Pitches": 87.4
},
"rates": {
"ERA": 4.6184,
"WHIP": 1.6184,
"ER_per_IP": 0.51316,
"H_per_IP": 1.26316,
"BB_per_IP": 0.35526,
"SO_per_IP": 0.75,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.2,
"ER": 21.0,
"R": 25.0,
"H": 50.0,
"BB": 19.0,
"SO": 44.0,
"HR": 4.0,
"BF": 236.0,
"Pitches": 914.0
},
"per_game": {
"IP": 5.2,
"ER": 2.1,
"R": 2.5,
"H": 5.0,
"BB": 1.9,
"SO": 4.4,
"HR": 0.4,
"BF": 23.6,
"Pitches": 91.4
},
"rates": {
"ERA": 3.2775,
"WHIP": 1.1965,
"ER_per_IP": 0.36416,
"H_per_IP": 0.86705,
"BB_per_IP": 0.32948,
"SO_per_IP": 0.76301,
"HR_per_IP": 0.06936
}
},
"season": {
"games": 25,
"totals": {
"IP": 138.2,
"ER": 57.0,
"R": 66.0,
"H": 131.0,
"BB": 60.0,
"SO": 129.0,
"HR": 15.0,
"BF": 587.0,
"Pitches": 2302.0
},
"per_game": {
"IP": 5.2,
"ER": 2.28,
"R": 2.64,
"H": 5.24,
"BB": 2.4,
"SO": 5.16,
"HR": 0.6,
"BF": 23.48,
"Pitches": 92.08
},
"rates": {
"ERA": 3.6995,
"WHIP": 1.3774,
"ER_per_IP": 0.41106,
"H_per_IP": 0.94471,
"BB_per_IP": 0.43269,
"SO_per_IP": 0.93029,
"HR_per_IP": 0.10817
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.416,
"predicted_H": 5.61,
"predicted_BB": 1.945,
"predicted_SO": 4.377,
"predicted_HR": 0.574,
"predicted_ERA": 4.0555,
"predicted_WHIP": 1.4092
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.416,
"final": 1.8207,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.61,
"final": 4.0922,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.945,
"final": 1.1273,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.377,
"final": 4.6389,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.574,
"final": 0.3327,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0555,
"final": 4.0555,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4092,
"final": 1.4092,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.2,
"ER": 21,
"H": 50,
"BB": 19,
"SO": 44,
"HR": 4,
"ERA": 3.277456647398844,
"WHIP": 1.1965317919075142,
"K9": 6.867052023121387,
"HR9": 0.6242774566473988,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.8710908021655182,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680694",
"player_name": "Kyle Bradish",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.2,
"delta": -0.1333,
"percent_delta": -0.025,
"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.2,
"delta": -0.1333,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 596.0,
"runs_allowed": 619.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1742,
"avg_runs_scored": 4.5152,
"avg_runs_allowed": 4.6894,
"offense_index": 1.0104,
"defense_index": 0.953,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.5,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0344
},
"opponent": {
"team": "STL",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 586.0,
"runs_allowed": 600.0,
"run_differential": -14.0,
"run_differential_per_game": -0.1053,
"avg_runs_scored": 4.406,
"avg_runs_allowed": 4.5113,
"offense_index": 0.9859,
"defense_index": 0.9906,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.3,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0512
},
"edges": {
"quality_edge": 0.0168,
"offense_edge": 0.0104,
"opponent_offense_edge": -0.0141,
"defense_strength": -0.047,
"opponent_defense_weakness": 0.0094,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9998,
"run_prevention": 1.0016,
"strikeout": 1.0016
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680694",
"profile": {
"available": true,
"pitcher_id": "680694",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 555.0,
"k_percent": 22.0,
"bb_percent": 10.2,
"woba": 0.323,
"xwoba": 0.318,
"sweet_spot_percent": 31.6,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.767,
"avg_hyper_speed": 93.9665,
"whiff_percent": 24.3,
"swing_percent": 44.7
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1061,
"command_and_miss": -0.095,
"regression_edge": 0.1429,
"xwoba_edge": -0.2,
"barrel_edge": -0.2,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.1286,
"bb_edge": -0.25,
"pitch_design_score": 0.0373
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680694",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 85,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 85,
"pitch_usage": 0.0,
"release_speed": 90.5144544635341,
"release_spin_rate": 2427.3950290002913,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5145,
"release_spin_rate": 2427.395,
"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.0373,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2666,
"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.0668,
"sample_weight": 1.0,
"run_prevention_factor": 1.0057,
"strikeout_factor": 0.9949,
"walk_factor": 1.02,
"homer_factor": 1.0243,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680694",
"espn_id": 4311625,
"player_name": "Kyle Bradish",
"team": "BAL",
"role": "pitcher",
"espn_rank": 93,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 93,
"gp_value": 25.0,
"gp_rank": 275,
"gs_value": 25.0,
"gs_rank": 33,
"qs_value": 12.0,
"qs_rank": 27,
"era_value": 3.6995,
"era_rank": 31.0,
"w_value": 7.0,
"w_rank": 73,
"l_value": 12.0,
"l_rank": 4,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 138.2,
"ip_rank": 40,
"h_value": 131.0,
"h_rank": 28,
"er_value": 57.0,
"er_rank": 58,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 60.0,
"bb_rank": 10,
"k_value": 129.0,
"k_rank": 41,
"k_per_9_value": 8.372596,
"k_per_9_rank": 27.0,
"whip_value": 1.3774,
"whip_rank": 47.0,
"war_value": 1.65,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0057,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0057,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.02,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0243,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9949,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 20,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
}
],
"provenance": {
"prediction": "output/games/20260826_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_BAL@STL | home | Michael McGreevy | Michael McGreevy | True | 5.1 | 5.0 | -1 | 1 | 7 | 6 | 3/10 | 1/2 | 8/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.53883495145631,
"WHIP": 1.2087378640776698,
"IP": 137.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.493,
"recent_avg_IP": 4.6,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5909,
"sample_weight": 1.0,
"run_prevention_factor": 1.0502,
"strikeout_factor": 0.9383,
"walk_factor": 0.946,
"homer_factor": 1.1103,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.0,
"bb_percent": 6.5,
"woba": 0.31,
"xwoba": 0.351,
"barrel_percent": 9.9,
"hard_hit_percent": 42.4,
"whiff_percent": 19.4
},
"espn_rank": {
"rank": 64,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700241",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 15.0,
"R": 18.0,
"H": 28.0,
"BB": 9.0,
"SO": 21.0,
"HR": 3.0,
"BF": 104.0,
"Pitches": 448.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.6,
"H": 5.6,
"BB": 1.8,
"SO": 4.2,
"HR": 0.6,
"BF": 20.8,
"Pitches": 89.6
},
"rates": {
"ERA": 5.8696,
"WHIP": 1.6087,
"ER_per_IP": 0.65217,
"H_per_IP": 1.21739,
"BB_per_IP": 0.3913,
"SO_per_IP": 0.91304,
"HR_per_IP": 0.13043
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.0,
"ER": 23.0,
"R": 27.0,
"H": 54.0,
"BB": 16.0,
"SO": 42.0,
"HR": 6.0,
"BF": 225.0,
"Pitches": 908.0
},
"per_game": {
"IP": 5.1,
"ER": 2.3,
"R": 2.7,
"H": 5.4,
"BB": 1.6,
"SO": 4.2,
"HR": 0.6,
"BF": 22.5,
"Pitches": 90.8
},
"rates": {
"ERA": 3.8333,
"WHIP": 1.2963,
"ER_per_IP": 0.42593,
"H_per_IP": 1.0,
"BB_per_IP": 0.2963,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.11111
}
},
"season": {
"games": 25,
"totals": {
"IP": 137.1,
"ER": 54.0,
"R": 58.0,
"H": 130.0,
"BB": 36.0,
"SO": 95.0,
"HR": 18.0,
"BF": 558.0,
"Pitches": 2225.0
},
"per_game": {
"IP": 5.1,
"ER": 2.16,
"R": 2.32,
"H": 5.2,
"BB": 1.44,
"SO": 3.8,
"HR": 0.72,
"BF": 22.32,
"Pitches": 89.0
},
"rates": {
"ERA": 3.5388,
"WHIP": 1.2087,
"ER_per_IP": 0.3932,
"H_per_IP": 0.9466,
"BB_per_IP": 0.26214,
"SO_per_IP": 0.69175,
"HR_per_IP": 0.13107
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.603,
"predicted_H": 5.372,
"predicted_BB": 1.7,
"predicted_SO": 4.234,
"predicted_HR": 0.642,
"predicted_ERA": 4.66,
"predicted_WHIP": 1.4066
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.603,
"final": 1.929,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.372,
"final": 4.3747,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.7,
"final": 1.4057,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 4.234,
"final": 5.8173,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.642,
"final": 0.7925,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.66,
"final": 4.66,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4066,
"final": 1.4066,
"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": 23,
"H": 54,
"BB": 16,
"SO": 42,
"HR": 6,
"ERA": 3.8333333333333335,
"WHIP": 1.2962962962962963,
"K9": 7.0,
"HR9": 1.0,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.9361210419428678,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700241",
"player_name": "Michael McGreevy",
"position": "Starter",
"team": "STL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.1,
"delta": 0.1,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "STL",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 586.0,
"runs_allowed": 600.0,
"run_differential": -14.0,
"run_differential_per_game": -0.1053,
"avg_runs_scored": 4.406,
"avg_runs_allowed": 4.5113,
"offense_index": 0.9859,
"defense_index": 0.9906,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 6.3,
"run_differential": -14.0
},
"available": true,
"quality_score": -0.0512
},
"opponent": {
"team": "BAL",
"games": 132,
"wins": 64,
"losses": 68,
"win_pct": 0.4848,
"runs_scored": 596.0,
"runs_allowed": 619.0,
"run_differential": -23.0,
"run_differential_per_game": -0.1742,
"avg_runs_scored": 4.5152,
"avg_runs_allowed": 4.6894,
"offense_index": 1.0104,
"defense_index": 0.953,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.7,
"avg_runs_allowed": 3.5,
"run_differential": 12.0
},
"available": true,
"quality_score": -0.0344
},
"edges": {
"quality_edge": -0.0168,
"offense_edge": -0.0141,
"opponent_offense_edge": 0.0104,
"defense_strength": -0.0094,
"opponent_defense_weakness": 0.047,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9986,
"run_prevention": 1.0034,
"strikeout": 0.9987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700241",
"profile": {
"available": true,
"pitcher_id": "700241",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 511.0,
"k_percent": 17.0,
"bb_percent": 6.5,
"woba": 0.31,
"xwoba": 0.351,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 42.4,
"avg_best_speed": 78.926,
"avg_hyper_speed": 94.8424,
"whiff_percent": 19.4,
"swing_percent": 44.7
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6027,
"command_and_miss": -0.4764,
"regression_edge": -1.1714,
"xwoba_edge": -1.1429,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.6571,
"whiff_edge": -0.8286,
"bb_edge": 0.675,
"pitch_design_score": -0.1549
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700241",
"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": 87.08161246517682,
"release_spin_rate": 2204.006727677546,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.08161246517682,
"release_spin_rate": 2204.006727677546,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0816,
"release_spin_rate": 2204.0067,
"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.1549,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1065,
"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.5909,
"sample_weight": 1.0,
"run_prevention_factor": 1.0502,
"strikeout_factor": 0.9383,
"walk_factor": 0.946,
"homer_factor": 1.1103,
"woba_minus_xwoba": -0.041,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700241",
"espn_id": 4424141,
"player_name": "Michael McGreevy",
"team": "STL",
"role": "pitcher",
"espn_rank": 64,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 64,
"gp_value": 25.0,
"gp_rank": 275,
"gs_value": 25.0,
"gs_rank": 33,
"qs_value": 14.0,
"qs_rank": 15,
"era_value": 3.5388,
"era_rank": 26.0,
"w_value": 5.0,
"w_rank": 123,
"l_value": 9.0,
"l_rank": 19,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 137.1,
"ip_rank": 43,
"h_value": 130.0,
"h_rank": 29,
"er_value": 54.0,
"er_rank": 70,
"hr_value": 18.0,
"hr_rank": 39,
"bb_value": 36.0,
"bb_rank": 90,
"k_value": 95.0,
"k_rank": 96,
"k_per_9_value": 6.225728,
"k_per_9_rank": 60.0,
"whip_value": 1.2087,
"whip_rank": 30.0,
"war_value": 2.07,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0502,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0502,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.946,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1103,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9383,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 6",
"detail": "Actual minus predicted earned runs was +6; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 7",
"detail": "Actual minus predicted hits was +7."
}
],
"provenance": {
"prediction": "output/games/20260826_BAL@STL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_BOS@MIA | away | Sonny Gray | Sonny Gray | True | 6.0 | 5.0 | -3 | 3 | 2 | -1 | 5/7 | 3/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.790865384615385,
"WHIP": 1.1610576923076923,
"IP": 138.2,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.778,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.128,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 0.984,
"walk_factor": 0.944,
"homer_factor": 0.9803,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.4,
"woba": 0.3,
"xwoba": 0.295,
"barrel_percent": 6.6,
"hard_hit_percent": 38.3,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 20,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543243",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 10.0,
"R": 10.0,
"H": 29.0,
"BB": 8.0,
"SO": 30.0,
"HR": 3.0,
"BF": 132.0,
"Pitches": 462.0
},
"per_game": {
"IP": 6.1,
"ER": 2.0,
"R": 2.0,
"H": 5.8,
"BB": 1.6,
"SO": 6.0,
"HR": 0.6,
"BF": 26.4,
"Pitches": 92.4
},
"rates": {
"ERA": 2.8125,
"WHIP": 1.1562,
"ER_per_IP": 0.3125,
"H_per_IP": 0.90625,
"BB_per_IP": 0.25,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.09375
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 18.0,
"R": 18.0,
"H": 54.0,
"BB": 16.0,
"SO": 57.0,
"HR": 6.0,
"BF": 250.0,
"Pitches": 886.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.8,
"H": 5.4,
"BB": 1.6,
"SO": 5.7,
"HR": 0.6,
"BF": 25.0,
"Pitches": 88.6
},
"rates": {
"ERA": 2.5989,
"WHIP": 1.123,
"ER_per_IP": 0.28877,
"H_per_IP": 0.86631,
"BB_per_IP": 0.25668,
"SO_per_IP": 0.91444,
"HR_per_IP": 0.09626
}
},
"season": {
"games": 24,
"totals": {
"IP": 138.2,
"ER": 43.0,
"R": 44.0,
"H": 125.0,
"BB": 36.0,
"SO": 123.0,
"HR": 15.0,
"BF": 563.0,
"Pitches": 2020.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7917,
"R": 1.8333,
"H": 5.2083,
"BB": 1.5,
"SO": 5.125,
"HR": 0.625,
"BF": 23.4583,
"Pitches": 84.1667
},
"rates": {
"ERA": 2.7909,
"WHIP": 1.1611,
"ER_per_IP": 0.3101,
"H_per_IP": 0.90144,
"BB_per_IP": 0.25962,
"SO_per_IP": 0.88702,
"HR_per_IP": 0.10817
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.082,
"predicted_H": 5.584,
"predicted_BB": 1.688,
"predicted_SO": 5.696,
"predicted_HR": 0.654,
"predicted_ERA": 3.0391,
"predicted_WHIP": 1.1795
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.082,
"final": 2.4702,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.584,
"final": 5.3371,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.688,
"final": 2.2428,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 5.696,
"final": 4.556,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.654,
"final": 0.3775,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0391,
"final": 3.0391,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1795,
"final": 1.1795,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 18,
"H": 54,
"BB": 16,
"SO": 57,
"HR": 6,
"ERA": 2.598930481283422,
"WHIP": 1.1229946524064172,
"K9": 8.229946524064172,
"HR9": 0.8663101604278075,
"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-08-21T00:00:00"
},
"recent_form_boost": 0.7929181799900058,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543243",
"player_name": "Sonny Gray",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"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": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"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": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 132,
"wins": 73,
"losses": 59,
"win_pct": 0.553,
"runs_scored": 600.0,
"runs_allowed": 495.0,
"run_differential": 105.0,
"run_differential_per_game": 0.7955,
"avg_runs_scored": 4.5455,
"avg_runs_allowed": 3.75,
"offense_index": 1.018,
"defense_index": 1.1907,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.248
},
"opponent": {
"team": "MIA",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 578.0,
"runs_allowed": 563.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1128,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 4.2331,
"offense_index": 0.9733,
"defense_index": 1.0549,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.8,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0171
},
"edges": {
"quality_edge": 0.2309,
"offense_edge": 0.018,
"opponent_offense_edge": -0.0267,
"defense_strength": 0.1907,
"opponent_defense_weakness": -0.0549,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.016,
"run_prevention": 0.9651,
"strikeout": 1.0091
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543243",
"profile": {
"available": true,
"pitcher_id": "543243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 531.0,
"k_percent": 21.8,
"bb_percent": 6.4,
"woba": 0.3,
"xwoba": 0.295,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 38.3,
"avg_best_speed": 79.0883,
"avg_hyper_speed": 93.8923,
"whiff_percent": 22.6,
"swing_percent": 47.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2234,
"command_and_miss": -0.0029,
"regression_edge": 0.1429,
"xwoba_edge": 0.4571,
"barrel_edge": 0.1111,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.3714,
"bb_edge": 0.7,
"pitch_design_score": -0.1337
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543243",
"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": 87.45986278978744,
"release_spin_rate": 2501.7368281686063,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 87.45986278978744,
"release_spin_rate": 2501.7368281686063,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 87.4599,
"release_spin_rate": 2501.7368,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.1337,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9552,
"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.128,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 0.984,
"walk_factor": 0.944,
"homer_factor": 0.9803,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "543243",
"espn_id": 32082,
"player_name": "Sonny Gray",
"team": "BOS",
"role": "pitcher",
"espn_rank": 20,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 20,
"gp_value": 24.0,
"gp_rank": 299,
"gs_value": 24.0,
"gs_rank": 48,
"qs_value": 16.0,
"qs_rank": 5,
"era_value": 2.7908,
"era_rank": 10.0,
"w_value": 16.0,
"w_rank": 1,
"l_value": 3.0,
"l_rank": 219,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 138.2,
"ip_rank": 40,
"h_value": 125.0,
"h_rank": 48,
"er_value": 43.0,
"er_rank": 121,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 36.0,
"bb_rank": 90,
"k_value": 123.0,
"k_rank": 50,
"k_per_9_value": 7.983173,
"k_per_9_rank": 33.0,
"whip_value": 1.161,
"whip_rank": 26.0,
"war_value": 3.32,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9891,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9891,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.944,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9803,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.984,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"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/20260826_BOS@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_BOS@MIA | home | Ryan Gusto | Ryan Gusto | True | 5.1 | 5.2 | 1 | 5 | 0 | -5 | 9/4 | 0/3 | 7/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.369942196531792,
"WHIP": 1.3352601156069366,
"IP": 57.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 4.028,
"recent_avg_IP": 4.733,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2382,
"sample_weight": 0.948,
"run_prevention_factor": 1.0202,
"strikeout_factor": 0.9659,
"walk_factor": 0.9374,
"homer_factor": 1.0648,
"regression_flag": "neutral",
"k_percent": 20.0,
"bb_percent": 5.9,
"woba": 0.324,
"xwoba": 0.319,
"barrel_percent": 8.6,
"hard_hit_percent": 43.9,
"whiff_percent": 20.9
},
"espn_rank": {
"rank": 328,
"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": "687473",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 11.0,
"R": 13.0,
"H": 28.0,
"BB": 4.0,
"SO": 20.0,
"HR": 5.0,
"BF": 104.0,
"Pitches": 354.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.6,
"H": 5.6,
"BB": 0.8,
"SO": 4.0,
"HR": 1.0,
"BF": 20.8,
"Pitches": 70.8
},
"rates": {
"ERA": 4.1831,
"WHIP": 1.3521,
"ER_per_IP": 0.46479,
"H_per_IP": 1.1831,
"BB_per_IP": 0.16901,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.21127
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 36.1,
"ER": 16.0,
"R": 19.0,
"H": 37.0,
"BB": 7.0,
"SO": 31.0,
"HR": 6.0,
"BF": 156.0,
"Pitches": 547.0
},
"per_game": {
"IP": 3.2,
"ER": 1.6,
"R": 1.9,
"H": 3.7,
"BB": 0.7,
"SO": 3.1,
"HR": 0.6,
"BF": 15.6,
"Pitches": 54.7
},
"rates": {
"ERA": 3.9633,
"WHIP": 1.211,
"ER_per_IP": 0.44037,
"H_per_IP": 1.01835,
"BB_per_IP": 0.19266,
"SO_per_IP": 0.85321,
"HR_per_IP": 0.16514
}
},
"season": {
"games": 17,
"totals": {
"IP": 57.2,
"ER": 28.0,
"R": 31.0,
"H": 62.0,
"BB": 15.0,
"SO": 51.0,
"HR": 8.0,
"BF": 255.0,
"Pitches": 920.0
},
"per_game": {
"IP": 3.1,
"ER": 1.6471,
"R": 1.8235,
"H": 3.6471,
"BB": 0.8824,
"SO": 3.0,
"HR": 0.4706,
"BF": 15.0,
"Pitches": 54.1176
},
"rates": {
"ERA": 4.3699,
"WHIP": 1.3353,
"ER_per_IP": 0.48555,
"H_per_IP": 1.07514,
"BB_per_IP": 0.26012,
"SO_per_IP": 0.88439,
"HR_per_IP": 0.13873
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.932,
"predicted_H": 4.421,
"predicted_BB": 0.966,
"predicted_SO": 3.605,
"predicted_HR": 0.711,
"predicted_ERA": 4.226,
"predicted_WHIP": 1.3092
}
},
"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": 4.1,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.932,
"final": 3.3004,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 4.421,
"final": 6.4634,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.966,
"final": 0.5351,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 3.605,
"final": 5.1193,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.711,
"final": 0.8399,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.226,
"final": 4.226,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3092,
"final": 1.3092,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 36.1,
"ER": 16,
"H": 37,
"BB": 7,
"SO": 31,
"HR": 6,
"ERA": 3.9633027522935778,
"WHIP": 1.2110091743119265,
"K9": 7.678899082568807,
"HR9": 1.4862385321100917,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9486104235262861,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_BB": 0.0,
"predicted_SO": 7.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": "687473",
"player_name": "Ryan Gusto",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 5.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.1,
"delta": 0.7667,
"percent_delta": 0.1769,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.1,
"delta": 0.7667,
"percent_delta": 0.1769,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.1,
"delta": 0.7667,
"percent_delta": 0.1769,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.1,
"delta": 0.7667,
"percent_delta": 0.1769,
"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": "MIA",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 578.0,
"runs_allowed": 563.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1128,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 4.2331,
"offense_index": 0.9733,
"defense_index": 1.0549,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 3.8,
"run_differential": 5.0
},
"available": true,
"quality_score": 0.0171
},
"opponent": {
"team": "BOS",
"games": 132,
"wins": 73,
"losses": 59,
"win_pct": 0.553,
"runs_scored": 600.0,
"runs_allowed": 495.0,
"run_differential": 105.0,
"run_differential_per_game": 0.7955,
"avg_runs_scored": 4.5455,
"avg_runs_allowed": 3.75,
"offense_index": 1.018,
"defense_index": 1.1907,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 3.5,
"run_differential": 23.0
},
"available": true,
"quality_score": 0.248
},
"edges": {
"quality_edge": -0.2309,
"offense_edge": -0.0267,
"opponent_offense_edge": 0.018,
"defense_strength": 0.0549,
"opponent_defense_weakness": -0.1907,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9917,
"run_prevention": 1.0089,
"strikeout": 0.9916
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687473",
"profile": {
"available": true,
"pitcher_id": "687473",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 237.0,
"k_percent": 20.0,
"bb_percent": 5.9,
"woba": 0.324,
"xwoba": 0.319,
"sweet_spot_percent": 38.5,
"barrel_batted_rate": 8.6,
"hard_hit_percent": 43.9,
"avg_best_speed": 80.1651,
"avg_hyper_speed": 94.234,
"whiff_percent": 20.9,
"swing_percent": 50.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3849,
"command_and_miss": -0.1786,
"regression_edge": 0.1429,
"xwoba_edge": -0.2286,
"barrel_edge": -0.3333,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.6143,
"bb_edge": 0.825,
"pitch_design_score": -0.0449
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687473",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 89.04680825756294,
"release_spin_rate": 2247.111446962792,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 89.0468,
"release_spin_rate": 2247.1114,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.0449,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3204,
"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.2382,
"sample_weight": 0.948,
"run_prevention_factor": 1.0202,
"strikeout_factor": 0.9659,
"walk_factor": 0.9374,
"homer_factor": 1.0648,
"woba_minus_xwoba": 0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687473",
"espn_id": 5131986,
"player_name": "Ryan Gusto",
"team": "MIA",
"role": "pitcher",
"espn_rank": 328,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 328,
"gp_value": 17.0,
"gp_rank": 405,
"gs_value": 12.0,
"gs_rank": 149,
"qs_value": 1.0,
"qs_rank": 173,
"era_value": 4.3699,
"era_rank": null,
"w_value": 0.0,
"w_rank": 507,
"l_value": 3.0,
"l_rank": 219,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 1.0,
"hld_rank": 252,
"ip_value": 57.2,
"ip_rank": 216,
"h_value": 62.0,
"h_rank": 167,
"er_value": 28.0,
"er_rank": 192,
"hr_value": 8.0,
"hr_rank": 191,
"bb_value": 15.0,
"bb_rank": 352,
"k_value": 51.0,
"k_rank": 260,
"k_per_9_value": 7.9595375,
"k_per_9_rank": 32.0,
"whip_value": 1.3352,
"whip_rank": null,
"war_value": 0.22,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0191,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0191,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.9407,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0614,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9677,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 9,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 106,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 5",
"detail": "Actual minus predicted earned runs was -5; this is the primary run-prevention error."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 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."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 5 ER."
}
],
"provenance": {
"prediction": "output/games/20260826_BOS@MIA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CHC@ARI | away | Matthew Boyd | Matthew Boyd | True | 6.0 | 6.0 | 0 | 1 | 1 | 0 | 3/3 | 1/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.153846153846154,
"WHIP": 1.2417582417582418,
"IP": 91.0,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 5.688,
"recent_avg_IP": 6.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3905,
"sample_weight": 1.0,
"run_prevention_factor": 1.0332,
"strikeout_factor": 0.9651,
"walk_factor": 0.962,
"homer_factor": 1.0706,
"regression_flag": "neutral",
"k_percent": 18.6,
"bb_percent": 7.3,
"woba": 0.318,
"xwoba": 0.342,
"barrel_percent": 9.8,
"hard_hit_percent": 37.1,
"whiff_percent": 22.5
},
"espn_rank": {
"rank": 305,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "571510",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 17.0,
"R": 19.0,
"H": 29.0,
"BB": 11.0,
"SO": 16.0,
"HR": 8.0,
"BF": 135.0,
"Pitches": 462.0
},
"per_game": {
"IP": 6.1,
"ER": 3.4,
"R": 3.8,
"H": 5.8,
"BB": 2.2,
"SO": 3.2,
"HR": 1.6,
"BF": 27.0,
"Pitches": 92.4
},
"rates": {
"ERA": 4.7812,
"WHIP": 1.25,
"ER_per_IP": 0.53125,
"H_per_IP": 0.90625,
"BB_per_IP": 0.34375,
"SO_per_IP": 0.5,
"HR_per_IP": 0.25
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.1,
"ER": 26.0,
"R": 28.0,
"H": 56.0,
"BB": 18.0,
"SO": 36.0,
"HR": 12.0,
"BF": 260.0,
"Pitches": 911.0
},
"per_game": {
"IP": 6.1,
"ER": 2.6,
"R": 2.8,
"H": 5.6,
"BB": 1.8,
"SO": 3.6,
"HR": 1.2,
"BF": 26.0,
"Pitches": 91.1
},
"rates": {
"ERA": 3.754,
"WHIP": 1.1872,
"ER_per_IP": 0.41711,
"H_per_IP": 0.8984,
"BB_per_IP": 0.28877,
"SO_per_IP": 0.57754,
"HR_per_IP": 0.19251
}
},
"season": {
"games": 16,
"totals": {
"IP": 91.0,
"ER": 42.0,
"R": 45.0,
"H": 85.0,
"BB": 28.0,
"SO": 71.0,
"HR": 14.0,
"BF": 381.0,
"Pitches": 1417.0
},
"per_game": {
"IP": 5.2,
"ER": 2.625,
"R": 2.8125,
"H": 5.3125,
"BB": 1.75,
"SO": 4.4375,
"HR": 0.875,
"BF": 23.8125,
"Pitches": 88.5625
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.2418,
"ER_per_IP": 0.46154,
"H_per_IP": 0.93407,
"BB_per_IP": 0.30769,
"SO_per_IP": 0.78022,
"HR_per_IP": 0.15385
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.971,
"predicted_H": 5.689,
"predicted_BB": 2.026,
"predicted_SO": 4.119,
"predicted_HR": 1.202,
"predicted_ERA": 4.3462,
"predicted_WHIP": 1.254
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.971,
"final": 2.0829,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.689,
"final": 4.4773,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.026,
"final": 1.5637,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.119,
"final": 4.516,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.202,
"final": 1.111,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3462,
"final": 4.3462,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.254,
"final": 1.254,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.1,
"ER": 26,
"H": 56,
"BB": 18,
"SO": 36,
"HR": 12,
"ERA": 3.754010695187166,
"WHIP": 1.1871657754010696,
"K9": 5.197860962566845,
"HR9": 1.732620320855615,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9244689821290434,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "571510",
"player_name": "Matthew Boyd",
"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": 1.0,
"predicted_H": 3.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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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": 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": "CHC",
"games": 133,
"wins": 76,
"losses": 57,
"win_pct": 0.5714,
"runs_scored": 695.0,
"runs_allowed": 574.0,
"run_differential": 121.0,
"run_differential_per_game": 0.9098,
"avg_runs_scored": 5.2256,
"avg_runs_allowed": 4.3158,
"offense_index": 1.1661,
"defense_index": 1.0383,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.8,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1374
},
"opponent": {
"team": "ARI",
"games": 133,
"wins": 70,
"losses": 63,
"win_pct": 0.5263,
"runs_scored": 603.0,
"runs_allowed": 600.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0226,
"avg_runs_scored": 4.5338,
"avg_runs_allowed": 4.5113,
"offense_index": 1.0118,
"defense_index": 0.9933,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.9,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0251
},
"edges": {
"quality_edge": 0.1123,
"offense_edge": 0.1661,
"opponent_offense_edge": 0.0118,
"defense_strength": 0.0383,
"opponent_defense_weakness": 0.0067,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0052,
"run_prevention": 0.9924,
"strikeout": 1.0024
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "571510",
"profile": {
"available": true,
"pitcher_id": "571510",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 354.0,
"k_percent": 18.6,
"bb_percent": 7.3,
"woba": 0.318,
"xwoba": 0.342,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 37.1,
"avg_best_speed": 76.2424,
"avg_hyper_speed": 94.0022,
"whiff_percent": 22.5,
"swing_percent": 48.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.418,
"command_and_miss": -0.2586,
"regression_edge": -0.6857,
"xwoba_edge": -0.8857,
"barrel_edge": -0.6,
"hard_hit_edge": 0.1,
"whiff_edge": -0.3857,
"bb_edge": 0.475,
"pitch_design_score": -0.2572
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.25414106885589,
"release_spin_rate": 2219.1498721779217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.25414106885589,
"release_spin_rate": 2219.1498721779217,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2541,
"release_spin_rate": 2219.1499,
"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.2572,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8375,
"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.3905,
"sample_weight": 1.0,
"run_prevention_factor": 1.0332,
"strikeout_factor": 0.9651,
"walk_factor": 0.962,
"homer_factor": 1.0706,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "571510",
"espn_id": 34401,
"player_name": "Matthew Boyd",
"team": "CHC",
"role": "pitcher",
"espn_rank": 305,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 305,
"gp_value": 16.0,
"gp_rank": 419,
"gs_value": 16.0,
"gs_rank": 117,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 4.1538,
"era_rank": null,
"w_value": 8.0,
"w_rank": 47,
"l_value": 2.0,
"l_rank": 301,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 91.0,
"ip_rank": 127,
"h_value": 85.0,
"h_rank": 123,
"er_value": 42.0,
"er_rank": 130,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 28.0,
"bb_rank": 161,
"k_value": 71.0,
"k_rank": 159,
"k_per_9_value": 7.0219784,
"k_per_9_rank": 33.0,
"whip_value": 1.2417,
"whip_rank": null,
"war_value": 0.27,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0332,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0332,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0706,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9651,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"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 +0."
}
],
"provenance": {
"prediction": "output/games/20260826_CHC@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CHC@ARI | home | Eduardo Rodriguez | Eduardo Rodriguez | True | 6.1 | 7.0 | 2 | 3 | 0 | -3 | 6/2 | 4/3 | 3/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.6129032258064515,
"WHIP": 1.206451612903226,
"IP": 155.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.962,
"recent_avg_IP": 6.467,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2785,
"sample_weight": 1.0,
"run_prevention_factor": 1.0237,
"strikeout_factor": 0.9463,
"walk_factor": 0.97,
"homer_factor": 1.0137,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.3,
"bb_percent": 7.7,
"woba": 0.296,
"xwoba": 0.329,
"barrel_percent": 8.0,
"hard_hit_percent": 34.7,
"whiff_percent": 20.5
},
"espn_rank": {
"rank": 6,
"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": "593958",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.1,
"ER": 9.0,
"R": 11.0,
"H": 30.0,
"BB": 5.0,
"SO": 24.0,
"HR": 1.0,
"BF": 130.0,
"Pitches": 517.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 2.2,
"H": 6.0,
"BB": 1.0,
"SO": 4.8,
"HR": 0.2,
"BF": 26.0,
"Pitches": 103.4
},
"rates": {
"ERA": 2.5052,
"WHIP": 1.0825,
"ER_per_IP": 0.27835,
"H_per_IP": 0.92784,
"BB_per_IP": 0.15464,
"SO_per_IP": 0.74227,
"HR_per_IP": 0.03093
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 21.0,
"R": 23.0,
"H": 61.0,
"BB": 11.0,
"SO": 40.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 963.0
},
"per_game": {
"IP": 6.0,
"ER": 2.1,
"R": 2.3,
"H": 6.1,
"BB": 1.1,
"SO": 4.0,
"HR": 0.5,
"BF": 24.7,
"Pitches": 96.3
},
"rates": {
"ERA": 3.15,
"WHIP": 1.2,
"ER_per_IP": 0.35,
"H_per_IP": 1.01667,
"BB_per_IP": 0.18333,
"SO_per_IP": 0.66667,
"HR_per_IP": 0.08333
}
},
"season": {
"games": 26,
"totals": {
"IP": 155.0,
"ER": 45.0,
"R": 49.0,
"H": 138.0,
"BB": 49.0,
"SO": 110.0,
"HR": 14.0,
"BF": 635.0,
"Pitches": 2470.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7308,
"R": 1.8846,
"H": 5.3077,
"BB": 1.8846,
"SO": 4.2308,
"HR": 0.5385,
"BF": 24.4231,
"Pitches": 95.0
},
"rates": {
"ERA": 2.6129,
"WHIP": 1.2065,
"ER_per_IP": 0.29032,
"H_per_IP": 0.89032,
"BB_per_IP": 0.31613,
"SO_per_IP": 0.70968,
"HR_per_IP": 0.09032
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.084,
"predicted_H": 5.903,
"predicted_BB": 1.388,
"predicted_SO": 4.619,
"predicted_HR": 0.463,
"predicted_ERA": 3.0353,
"predicted_WHIP": 1.1797
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.084,
"final": 2.467,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.903,
"final": 5.9436,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.388,
"final": 2.4802,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.619,
"final": 3.5239,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.463,
"final": 0.2694,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0353,
"final": 3.0353,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1797,
"final": 1.1797,
"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": 61,
"BB": 11,
"SO": 40,
"HR": 5,
"ERA": 3.15,
"WHIP": 1.2,
"K9": 6.0,
"HR9": 0.75,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.8568386345354604,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 4,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "593958",
"player_name": "Eduardo Rodriguez",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 5.0,
"delta": 3.0,
"percent_delta": 1.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 3.0,
"delta": -2.0,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": "ARI",
"games": 133,
"wins": 70,
"losses": 63,
"win_pct": 0.5263,
"runs_scored": 603.0,
"runs_allowed": 600.0,
"run_differential": 3.0,
"run_differential_per_game": 0.0226,
"avg_runs_scored": 4.5338,
"avg_runs_allowed": 4.5113,
"offense_index": 1.0118,
"defense_index": 0.9933,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.9,
"run_differential": -10.0
},
"available": true,
"quality_score": 0.0251
},
"opponent": {
"team": "CHC",
"games": 133,
"wins": 76,
"losses": 57,
"win_pct": 0.5714,
"runs_scored": 695.0,
"runs_allowed": 574.0,
"run_differential": 121.0,
"run_differential_per_game": 0.9098,
"avg_runs_scored": 5.2256,
"avg_runs_allowed": 4.3158,
"offense_index": 1.1661,
"defense_index": 1.0383,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 4.8,
"run_differential": 10.0
},
"available": true,
"quality_score": 0.1374
},
"edges": {
"quality_edge": -0.1123,
"offense_edge": 0.0118,
"opponent_offense_edge": 0.1661,
"defense_strength": -0.0067,
"opponent_defense_weakness": -0.0383,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9887,
"run_prevention": 1.0329,
"strikeout": 0.9833
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "593958",
"profile": {
"available": true,
"pitcher_id": "593958",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 610.0,
"k_percent": 17.3,
"bb_percent": 7.7,
"woba": 0.296,
"xwoba": 0.329,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 34.7,
"avg_best_speed": 76.5022,
"avg_hyper_speed": 93.4709,
"whiff_percent": 20.5,
"swing_percent": 47.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1021,
"command_and_miss": -0.4621,
"regression_edge": -0.9429,
"xwoba_edge": -0.5143,
"barrel_edge": -0.2,
"hard_hit_edge": 0.4429,
"whiff_edge": -0.6714,
"bb_edge": 0.375,
"pitch_design_score": -0.0858
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "593958",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 103,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 103,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 103,
"pitch_usage": 0.0,
"release_speed": 88.31573743838237,
"release_spin_rate": 2174.324470429921,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3157,
"release_spin_rate": 2174.3245,
"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.0858,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.6128,
"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.2785,
"sample_weight": 1.0,
"run_prevention_factor": 1.0237,
"strikeout_factor": 0.9463,
"walk_factor": 0.97,
"homer_factor": 1.0137,
"woba_minus_xwoba": -0.033,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "593958",
"espn_id": 32675,
"player_name": "Eduardo Rodriguez",
"team": "ARI",
"role": "pitcher",
"espn_rank": 6,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 6,
"gp_value": 26.0,
"gp_rank": 242,
"gs_value": 26.0,
"gs_rank": 15,
"qs_value": 16.0,
"qs_rank": 5,
"era_value": 2.6129,
"era_rank": 7.0,
"w_value": 13.0,
"w_rank": 6,
"l_value": 4.0,
"l_rank": 162,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 155.0,
"ip_rank": 11,
"h_value": 138.0,
"h_rank": 17,
"er_value": 45.0,
"er_rank": 110,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 49.0,
"bb_rank": 23,
"k_value": 110.0,
"k_rank": 74,
"k_per_9_value": 6.387097,
"k_per_9_rank": 181.0,
"whip_value": 1.2064,
"whip_rank": 29.0,
"war_value": 4.86,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0237,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 1.0237,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.97,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0137,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9463,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 29,
"Pitches": 123,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260826_CHC@ARI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CIN@SF | away | Nick Lodolo | Nick Lodolo | True | 4.1 | 4.0 | -1 | 4 | 4 | 0 | 5/6 | 0/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.04,
"WHIP": 1.52,
"IP": 75.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 5.0,
"recent_avg_IP": 4.667,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.8478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0721,
"strikeout_factor": 0.9566,
"walk_factor": 1.0,
"homer_factor": 1.1084,
"regression_flag": "neutral",
"k_percent": 17.5,
"bb_percent": 9.2,
"woba": 0.369,
"xwoba": 0.382,
"barrel_percent": 9.1,
"hard_hit_percent": 39.9,
"whiff_percent": 22.1
},
"espn_rank": {
"rank": 188,
"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": "666157",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.1,
"ER": 13.0,
"R": 13.0,
"H": 29.0,
"BB": 9.0,
"SO": 17.0,
"HR": 5.0,
"BF": 107.0,
"Pitches": 409.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.8,
"BB": 1.8,
"SO": 3.4,
"HR": 1.0,
"BF": 21.4,
"Pitches": 81.8
},
"rates": {
"ERA": 5.0143,
"WHIP": 1.6286,
"ER_per_IP": 0.55714,
"H_per_IP": 1.24286,
"BB_per_IP": 0.38571,
"SO_per_IP": 0.72857,
"HR_per_IP": 0.21429
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 47.1,
"ER": 26.0,
"R": 26.0,
"H": 58.0,
"BB": 18.0,
"SO": 37.0,
"HR": 6.0,
"BF": 218.0,
"Pitches": 861.0
},
"per_game": {
"IP": 4.2,
"ER": 2.6,
"R": 2.6,
"H": 5.8,
"BB": 1.8,
"SO": 3.7,
"HR": 0.6,
"BF": 21.8,
"Pitches": 86.1
},
"rates": {
"ERA": 4.9437,
"WHIP": 1.6056,
"ER_per_IP": 0.5493,
"H_per_IP": 1.22535,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.78169,
"HR_per_IP": 0.12676
}
},
"season": {
"games": 15,
"totals": {
"IP": 75.0,
"ER": 42.0,
"R": 42.0,
"H": 83.0,
"BB": 31.0,
"SO": 59.0,
"HR": 13.0,
"BF": 338.0,
"Pitches": 1321.0
},
"per_game": {
"IP": 5.0,
"ER": 2.8,
"R": 2.8,
"H": 5.5333,
"BB": 2.0667,
"SO": 3.9333,
"HR": 0.8667,
"BF": 22.5333,
"Pitches": 88.0667
},
"rates": {
"ERA": 5.04,
"WHIP": 1.52,
"ER_per_IP": 0.56,
"H_per_IP": 1.10667,
"BB_per_IP": 0.41333,
"SO_per_IP": 0.78667,
"HR_per_IP": 0.17333
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.554,
"predicted_H": 5.428,
"predicted_BB": 1.811,
"predicted_SO": 3.799,
"predicted_HR": 0.794,
"predicted_ERA": 4.8726,
"predicted_WHIP": 1.5348
}
},
"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": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.554,
"final": 3.2128,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.428,
"final": 5.233,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.811,
"final": 0.9859,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.799,
"final": 4.3462,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.794,
"final": 1.3435,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.8726,
"final": 4.8726,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5348,
"final": 1.5348,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.1,
"ER": 26,
"H": 58,
"BB": 18,
"SO": 37,
"HR": 6,
"ERA": 4.943661971830986,
"WHIP": 1.6056338028169013,
"K9": 7.035211267605633,
"HR9": 1.1408450704225352,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.0687664514368689,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.1,
"predicted_ER": 4,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666157",
"player_name": "Nick Lodolo",
"position": "Starter",
"team": "CIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.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": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 4.1,
"predicted_R": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.1,
"after": 4.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 133,
"wins": 62,
"losses": 71,
"win_pct": 0.4662,
"runs_scored": 538.0,
"runs_allowed": 639.0,
"run_differential": -101.0,
"run_differential_per_game": -0.7594,
"avg_runs_scored": 4.0451,
"avg_runs_allowed": 4.8045,
"offense_index": 0.9027,
"defense_index": 0.9326,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.1,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1919
},
"opponent": {
"team": "SF",
"games": 132,
"wins": 54,
"losses": 78,
"win_pct": 0.4091,
"runs_scored": 531.0,
"runs_allowed": 604.0,
"run_differential": -73.0,
"run_differential_per_game": -0.553,
"avg_runs_scored": 4.0227,
"avg_runs_allowed": 4.5758,
"offense_index": 0.8978,
"defense_index": 0.9793,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.2,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1801
},
"edges": {
"quality_edge": -0.0118,
"offense_edge": -0.0973,
"opponent_offense_edge": -0.1022,
"defense_strength": -0.0674,
"opponent_defense_weakness": 0.0207,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0016,
"run_prevention": 0.991,
"strikeout": 1.0078
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666157",
"profile": {
"available": true,
"pitcher_id": "666157",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 307.0,
"k_percent": 17.5,
"bb_percent": 9.2,
"woba": 0.369,
"xwoba": 0.382,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 39.9,
"avg_best_speed": 80.1812,
"avg_hyper_speed": 94.7617,
"whiff_percent": 22.1,
"swing_percent": 45.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.2404,
"command_and_miss": -0.4443,
"regression_edge": -0.3714,
"xwoba_edge": -2.0286,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.3,
"whiff_edge": -0.4429,
"bb_edge": 0.0,
"pitch_design_score": -0.0064
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666157",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 89.73344991310856,
"release_spin_rate": 2279.7813049186448,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7334,
"release_spin_rate": 2279.7813,
"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.0064,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0458,
"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.8478,
"sample_weight": 1.0,
"run_prevention_factor": 1.0721,
"strikeout_factor": 0.9566,
"walk_factor": 1.0,
"homer_factor": 1.1084,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666157",
"espn_id": 42433,
"player_name": "Nick Lodolo",
"team": "CIN",
"role": "pitcher",
"espn_rank": 188,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 188,
"gp_value": 15.0,
"gp_rank": 432,
"gs_value": 15.0,
"gs_rank": 122,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 5.04,
"era_rank": null,
"w_value": 3.0,
"w_rank": 226,
"l_value": 3.0,
"l_rank": 219,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 75.0,
"ip_rank": 155,
"h_value": 83.0,
"h_rank": 126,
"er_value": 42.0,
"er_rank": 130,
"hr_value": 13.0,
"hr_rank": 107,
"bb_value": 31.0,
"bb_rank": 134,
"k_value": 59.0,
"k_rank": 203,
"k_per_9_value": 7.0800004,
"k_per_9_rank": 35.0,
"whip_value": 1.52,
"whip_rank": null,
"war_value": 0.86,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0721,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0721,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1084,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9566,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 18,
"Pitches": 70,
"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/20260826_CIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CIN@SF | home | Logan Webb | Logan Webb | True | 6.0 | 6.0 | 0 | 3 | 2 | -1 | 4/5 | 2/1 | 5/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7482352941176473,
"WHIP": 1.1082352941176472,
"IP": 141.2,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 6.159,
"recent_avg_IP": 5.733,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0767,
"sample_weight": 1.0,
"run_prevention_factor": 0.9935,
"strikeout_factor": 0.9594,
"walk_factor": 0.938,
"homer_factor": 0.967,
"regression_flag": "neutral",
"k_percent": 19.4,
"bb_percent": 6.1,
"woba": 0.279,
"xwoba": 0.303,
"barrel_percent": 5.5,
"hard_hit_percent": 38.2,
"whiff_percent": 20.7
},
"espn_rank": {
"rank": 72,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "657277",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 9.0,
"R": 9.0,
"H": 24.0,
"BB": 6.0,
"SO": 23.0,
"HR": 1.0,
"BF": 115.0,
"Pitches": 442.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 4.8,
"BB": 1.2,
"SO": 4.6,
"HR": 0.2,
"BF": 23.0,
"Pitches": 88.4
},
"rates": {
"ERA": 2.8256,
"WHIP": 1.0465,
"ER_per_IP": 0.31395,
"H_per_IP": 0.83721,
"BB_per_IP": 0.2093,
"SO_per_IP": 0.80233,
"HR_per_IP": 0.03488
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 28.0,
"R": 28.0,
"H": 49.0,
"BB": 15.0,
"SO": 42.0,
"HR": 5.0,
"BF": 241.0,
"Pitches": 915.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.8,
"H": 4.9,
"BB": 1.5,
"SO": 4.2,
"HR": 0.5,
"BF": 24.1,
"Pitches": 91.5
},
"rates": {
"ERA": 4.32,
"WHIP": 1.0971,
"ER_per_IP": 0.48,
"H_per_IP": 0.84,
"BB_per_IP": 0.25714,
"SO_per_IP": 0.72,
"HR_per_IP": 0.08571
}
},
"season": {
"games": 23,
"totals": {
"IP": 141.2,
"ER": 59.0,
"R": 62.0,
"H": 122.0,
"BB": 35.0,
"SO": 112.0,
"HR": 10.0,
"BF": 578.0,
"Pitches": 2135.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5652,
"R": 2.6957,
"H": 5.3043,
"BB": 1.5217,
"SO": 4.8696,
"HR": 0.4348,
"BF": 25.1304,
"Pitches": 92.8261
},
"rates": {
"ERA": 3.7482,
"WHIP": 1.1082,
"ER_per_IP": 0.41647,
"H_per_IP": 0.86118,
"BB_per_IP": 0.24706,
"SO_per_IP": 0.79059,
"HR_per_IP": 0.07059
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.421,
"predicted_H": 5.092,
"predicted_BB": 1.514,
"predicted_SO": 4.715,
"predicted_HR": 0.443,
"predicted_ERA": 3.707,
"predicted_WHIP": 1.1241
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.421,
"final": 2.6673,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.092,
"final": 4.6274,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.514,
"final": 1.7208,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.715,
"final": 4.8363,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.443,
"final": 0.68,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.707,
"final": 3.707,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1241,
"final": 1.1241,
"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": 28,
"H": 49,
"BB": 15,
"SO": 42,
"HR": 5,
"ERA": 4.32,
"WHIP": 1.0971428571428572,
"K9": 6.48,
"HR9": 0.7714285714285715,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9858922059640319,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657277",
"player_name": "Logan Webb",
"position": "Starter",
"team": "SF",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 132,
"wins": 54,
"losses": 78,
"win_pct": 0.4091,
"runs_scored": 531.0,
"runs_allowed": 604.0,
"run_differential": -73.0,
"run_differential_per_game": -0.553,
"avg_runs_scored": 4.0227,
"avg_runs_allowed": 4.5758,
"offense_index": 0.8978,
"defense_index": 0.9793,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 4.2,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1801
},
"opponent": {
"team": "CIN",
"games": 133,
"wins": 62,
"losses": 71,
"win_pct": 0.4662,
"runs_scored": 538.0,
"runs_allowed": 639.0,
"run_differential": -101.0,
"run_differential_per_game": -0.7594,
"avg_runs_scored": 4.0451,
"avg_runs_allowed": 4.8045,
"offense_index": 0.9027,
"defense_index": 0.9326,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.6,
"avg_runs_allowed": 5.1,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1919
},
"edges": {
"quality_edge": 0.0118,
"offense_edge": -0.1022,
"opponent_offense_edge": -0.0973,
"defense_strength": -0.0207,
"opponent_defense_weakness": 0.0674,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0037,
"run_prevention": 0.9859,
"strikeout": 1.0081
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657277",
"profile": {
"available": true,
"pitcher_id": "657277",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 558.0,
"k_percent": 19.4,
"bb_percent": 6.1,
"woba": 0.279,
"xwoba": 0.303,
"sweet_spot_percent": 30.1,
"barrel_batted_rate": 5.5,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.3295,
"avg_hyper_speed": 93.8489,
"whiff_percent": 20.7,
"swing_percent": 47.8
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3783,
"command_and_miss": -0.2371,
"regression_edge": -0.6857,
"xwoba_edge": 0.2286,
"barrel_edge": 0.3556,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.6429,
"bb_edge": 0.775,
"pitch_design_score": -0.0613
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657277",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 88.75348866858918,
"release_spin_rate": 2029.9391366774676,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 88.75348866858918,
"release_spin_rate": 2029.9391366774676,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7535,
"release_spin_rate": 2029.9391,
"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.0613,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4377,
"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.0767,
"sample_weight": 1.0,
"run_prevention_factor": 0.9935,
"strikeout_factor": 0.9594,
"walk_factor": 0.938,
"homer_factor": 0.967,
"woba_minus_xwoba": -0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657277",
"espn_id": 41216,
"player_name": "Logan Webb",
"team": "SF",
"role": "pitcher",
"espn_rank": 72,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 72,
"gp_value": 23.0,
"gp_rank": 316,
"gs_value": 23.0,
"gs_rank": 62,
"qs_value": 15.0,
"qs_rank": 13,
"era_value": 3.7482,
"era_rank": 32.0,
"w_value": 8.0,
"w_rank": 47,
"l_value": 8.0,
"l_rank": 38,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 141.2,
"ip_rank": 37,
"h_value": 122.0,
"h_rank": 53,
"er_value": 59.0,
"er_rank": 53,
"hr_value": 10.0,
"hr_rank": 143,
"bb_value": 35.0,
"bb_rank": 103,
"k_value": 112.0,
"k_rank": 67,
"k_per_9_value": 7.115294,
"k_per_9_rank": 48.0,
"whip_value": 1.1082,
"whip_rank": 14.0,
"war_value": 1.94,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9935,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9935,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.967,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9594,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"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/20260826_CIN@SF.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CLE@LAA | away | Joey Cantillo | Joey Cantillo | True | 4.2 | 6.0 | 4 | 2 | 2 | 0 | 2/2 | 0/7 | 5/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7289002557544753,
"WHIP": 1.4501278772378516,
"IP": 130.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 4.827,
"recent_avg_IP": 4.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1501,
"sample_weight": 1.0,
"run_prevention_factor": 0.9872,
"strikeout_factor": 1.0509,
"walk_factor": 1.04,
"homer_factor": 1.0199,
"regression_flag": "neutral",
"k_percent": 25.5,
"bb_percent": 11.2,
"woba": 0.331,
"xwoba": 0.305,
"barrel_percent": 7.9,
"hard_hit_percent": 39.7,
"whiff_percent": 30.6
},
"espn_rank": {
"rank": 126,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 130.1,
"season_ERA": 3.729,
"season_WHIP": 1.45,
"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": "676282",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 5.0,
"R": 8.0,
"H": 19.0,
"BB": 10.0,
"SO": 28.0,
"HR": 2.0,
"BF": 89.0,
"Pitches": 377.0
},
"per_game": {
"IP": 4.0,
"ER": 1.0,
"R": 1.6,
"H": 3.8,
"BB": 2.0,
"SO": 5.6,
"HR": 0.4,
"BF": 17.8,
"Pitches": 75.4
},
"rates": {
"ERA": 2.1774,
"WHIP": 1.4032,
"ER_per_IP": 0.24194,
"H_per_IP": 0.91935,
"BB_per_IP": 0.48387,
"SO_per_IP": 1.35484,
"HR_per_IP": 0.09677
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 17.0,
"R": 22.0,
"H": 49.0,
"BB": 24.0,
"SO": 59.0,
"HR": 3.0,
"BF": 204.0,
"Pitches": 803.0
},
"per_game": {
"IP": 4.1,
"ER": 1.7,
"R": 2.2,
"H": 4.9,
"BB": 2.4,
"SO": 5.9,
"HR": 0.3,
"BF": 20.4,
"Pitches": 80.3
},
"rates": {
"ERA": 3.4511,
"WHIP": 1.6466,
"ER_per_IP": 0.38346,
"H_per_IP": 1.10526,
"BB_per_IP": 0.54135,
"SO_per_IP": 1.33083,
"HR_per_IP": 0.06767
}
},
"season": {
"games": 27,
"totals": {
"IP": 130.1,
"ER": 54.0,
"R": 63.0,
"H": 126.0,
"BB": 63.0,
"SO": 144.0,
"HR": 15.0,
"BF": 564.0,
"Pitches": 2265.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.3333,
"H": 4.6667,
"BB": 2.3333,
"SO": 5.3333,
"HR": 0.5556,
"BF": 20.8889,
"Pitches": 83.8889
},
"rates": {
"ERA": 3.7289,
"WHIP": 1.4501,
"ER_per_IP": 0.41432,
"H_per_IP": 0.96675,
"BB_per_IP": 0.48338,
"SO_per_IP": 1.10486,
"HR_per_IP": 0.11509
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 1.543,
"predicted_H": 4.327,
"predicted_BB": 2.108,
"predicted_SO": 5.422,
"predicted_HR": 0.433,
"predicted_ERA": 3.1792,
"predicted_WHIP": 1.4735
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.1,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.543,
"final": 1.7331,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.327,
"final": 3.359,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.108,
"final": 1.2311,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.422,
"final": 5.2465,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.433,
"final": 0.6689,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1792,
"final": 3.1792,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4735,
"final": 1.4735,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 17,
"H": 49,
"BB": 24,
"SO": 59,
"HR": 3,
"ERA": 3.4511278195488724,
"WHIP": 1.6466165413533835,
"K9": 11.977443609022558,
"HR9": 0.6090225563909775,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9018809277685431,
"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": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.2,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676282",
"player_name": "Joey Cantillo",
"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": 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": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "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": 4.2,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 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": 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": 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
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 539.0,
"runs_allowed": 544.0,
"run_differential": -5.0,
"run_differential_per_game": -0.0376,
"avg_runs_scored": 4.0526,
"avg_runs_allowed": 4.0902,
"offense_index": 0.9044,
"defense_index": 1.0956,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 2.4,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.1036
},
"opponent": {
"team": "LAA",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 545.0,
"runs_allowed": 619.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5564,
"avg_runs_scored": 4.0977,
"avg_runs_allowed": 4.6541,
"offense_index": 0.9144,
"defense_index": 0.9628,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.9,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.1959
},
"edges": {
"quality_edge": 0.2995,
"offense_edge": -0.0956,
"opponent_offense_edge": -0.0856,
"defense_strength": 0.0956,
"opponent_defense_weakness": 0.0372,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0183,
"run_prevention": 0.9618,
"strikeout": 1.0158
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676282",
"profile": {
"available": true,
"pitcher_id": "676282",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 538.0,
"k_percent": 25.5,
"bb_percent": 11.2,
"woba": 0.331,
"xwoba": 0.305,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 39.7,
"avg_best_speed": 76.6694,
"avg_hyper_speed": 93.9114,
"whiff_percent": 30.6,
"swing_percent": 45.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0089,
"command_and_miss": 0.395,
"regression_edge": 0.7429,
"xwoba_edge": 0.1714,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.2714,
"whiff_edge": 0.7714,
"bb_edge": -0.5,
"pitch_design_score": -0.2739
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676282",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 72,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 84.95762368108332,
"release_spin_rate": 2024.6855383454645,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 72,
"pitch_usage": 0.0,
"release_speed": 84.95762368108332,
"release_spin_rate": 2024.6855383454645,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 84.9576,
"release_spin_rate": 2024.6855,
"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.2739,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9561,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1501,
"sample_weight": 1.0,
"run_prevention_factor": 0.9872,
"strikeout_factor": 1.0509,
"walk_factor": 1.04,
"homer_factor": 1.0199,
"woba_minus_xwoba": 0.026,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676282",
"espn_id": 42488,
"player_name": "Joey Cantillo",
"team": "CLE",
"role": "pitcher",
"espn_rank": 126,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 126,
"gp_value": 27.0,
"gp_rank": 223,
"gs_value": 27.0,
"gs_rank": 3,
"qs_value": 5.0,
"qs_rank": 103,
"era_value": 3.7289,
"era_rank": null,
"w_value": 9.0,
"w_rank": 29,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 130.1,
"ip_rank": 57,
"h_value": 126.0,
"h_rank": 45,
"er_value": 54.0,
"er_rank": 70,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 63.0,
"bb_rank": 8,
"k_value": 144.0,
"k_rank": 25,
"k_per_9_value": 9.943734,
"k_per_9_rank": 11.0,
"whip_value": 1.4501,
"whip_rank": null,
"war_value": 1.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9872,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9872,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.04,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0199,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0509,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 65,
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +7."
},
{
"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/20260826_CLE@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_CLE@LAA | home | Grayson Rodriguez | Grayson Rodriguez | True | 5.0 | 5.2 | 2 | 4 | 1 | -3 | 6/7 | 0/1 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.409090909090909,
"WHIP": 1.5303030303030303,
"IP": 66.0,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.714,
"recent_avg_IP": 5.4,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6889,
"sample_weight": 1.0,
"run_prevention_factor": 1.0586,
"strikeout_factor": 0.9851,
"walk_factor": 1.018,
"homer_factor": 1.1449,
"regression_flag": "neutral",
"k_percent": 20.5,
"bb_percent": 10.1,
"woba": 0.361,
"xwoba": 0.364,
"barrel_percent": 9.9,
"hard_hit_percent": 46.5,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 817,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680570",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 10.0,
"R": 13.0,
"H": 20.0,
"BB": 11.0,
"SO": 31.0,
"HR": 3.0,
"BF": 112.0,
"Pitches": 467.0
},
"per_game": {
"IP": 5.1,
"ER": 2.0,
"R": 2.6,
"H": 4.0,
"BB": 2.2,
"SO": 6.2,
"HR": 0.6,
"BF": 22.4,
"Pitches": 93.4
},
"rates": {
"ERA": 3.3333,
"WHIP": 1.1481,
"ER_per_IP": 0.37037,
"H_per_IP": 0.74074,
"BB_per_IP": 0.40741,
"SO_per_IP": 1.14815,
"HR_per_IP": 0.11111
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 48.0,
"ER": 28.0,
"R": 32.0,
"H": 48.0,
"BB": 19.0,
"SO": 44.0,
"HR": 6.0,
"BF": 212.0,
"Pitches": 852.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 3.2,
"H": 4.8,
"BB": 1.9,
"SO": 4.4,
"HR": 0.6,
"BF": 21.2,
"Pitches": 85.2
},
"rates": {
"ERA": 5.25,
"WHIP": 1.3958,
"ER_per_IP": 0.58333,
"H_per_IP": 1.0,
"BB_per_IP": 0.39583,
"SO_per_IP": 0.91667,
"HR_per_IP": 0.125
}
},
"season": {
"games": 14,
"totals": {
"IP": 66.0,
"ER": 47.0,
"R": 52.0,
"H": 71.0,
"BB": 30.0,
"SO": 61.0,
"HR": 10.0,
"BF": 298.0,
"Pitches": 1207.0
},
"per_game": {
"IP": 4.2,
"ER": 3.3571,
"R": 3.7143,
"H": 5.0714,
"BB": 2.1429,
"SO": 4.3571,
"HR": 0.7143,
"BF": 21.2857,
"Pitches": 86.2143
},
"rates": {
"ERA": 6.4091,
"WHIP": 1.5303,
"ER_per_IP": 0.71212,
"H_per_IP": 1.07576,
"BB_per_IP": 0.45455,
"SO_per_IP": 0.92424,
"HR_per_IP": 0.15152
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.537,
"predicted_H": 4.57,
"predicted_BB": 1.995,
"predicted_SO": 4.986,
"predicted_HR": 0.647,
"predicted_ERA": 4.5896,
"predicted_WHIP": 1.3195
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4612,
"form_weight": 0.5388,
"form_reliability": 0.7368,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.537,
"final": 3.2117,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.57,
"final": 5.2295,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.995,
"final": 1.0749,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.986,
"final": 4.5313,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.647,
"final": 0.3486,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5896,
"final": 4.5896,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3195,
"final": 1.3195,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 48.0,
"ER": 28,
"H": 48,
"BB": 19,
"SO": 44,
"HR": 6,
"ERA": 5.25,
"WHIP": 1.3958333333333333,
"K9": 8.25,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 1.0979844678687938,
"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": 6.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7368,
"prior_weight": 0.2632
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680570",
"player_name": "Grayson Rodriguez",
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "LAA",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 545.0,
"runs_allowed": 619.0,
"run_differential": -74.0,
"run_differential_per_game": -0.5564,
"avg_runs_scored": 4.0977,
"avg_runs_allowed": 4.6541,
"offense_index": 0.9144,
"defense_index": 0.9628,
"current_streak": "L3",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.9,
"run_differential": 10.0
},
"available": true,
"quality_score": -0.1959
},
"opponent": {
"team": "CLE",
"games": 133,
"wins": 67,
"losses": 66,
"win_pct": 0.5038,
"runs_scored": 539.0,
"runs_allowed": 544.0,
"run_differential": -5.0,
"run_differential_per_game": -0.0376,
"avg_runs_scored": 4.0526,
"avg_runs_allowed": 4.0902,
"offense_index": 0.9044,
"defense_index": 1.0956,
"current_streak": "W6",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 2.4,
"run_differential": 27.0
},
"available": true,
"quality_score": 0.1036
},
"edges": {
"quality_edge": -0.2995,
"offense_edge": -0.0856,
"opponent_offense_edge": -0.0956,
"defense_strength": -0.0372,
"opponent_defense_weakness": -0.0956,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9907,
"run_prevention": 1.0034,
"strikeout": 0.9987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680570",
"profile": {
"available": true,
"pitcher_id": "680570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 259.0,
"k_percent": 20.5,
"bb_percent": 10.1,
"woba": 0.361,
"xwoba": 0.364,
"sweet_spot_percent": 38.6,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 46.5,
"avg_best_speed": 79.8677,
"avg_hyper_speed": 95.1608,
"whiff_percent": 24.1,
"swing_percent": 48.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -1.1242,
"command_and_miss": -0.1964,
"regression_edge": -0.0857,
"xwoba_edge": -1.5143,
"barrel_edge": -0.6222,
"hard_hit_edge": -1.2429,
"whiff_edge": -0.1571,
"bb_edge": -0.225,
"pitch_design_score": 0.0035
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680570",
"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.90981092943103,
"release_spin_rate": 2190.6226176168993,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.90981092943103,
"release_spin_rate": 2190.6226176168993,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9098,
"release_spin_rate": 2190.6226,
"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.0035,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0248,
"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.6889,
"sample_weight": 1.0,
"run_prevention_factor": 1.0586,
"strikeout_factor": 0.9851,
"walk_factor": 1.018,
"homer_factor": 1.1449,
"woba_minus_xwoba": -0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680570",
"espn_id": 41196,
"player_name": "Grayson Rodriguez",
"team": "LAA",
"role": "pitcher",
"espn_rank": 817,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 817,
"gp_value": 14.0,
"gp_rank": 453,
"gs_value": 14.0,
"gs_rank": 136,
"qs_value": 2.0,
"qs_rank": 153,
"era_value": 6.409,
"era_rank": null,
"w_value": 4.0,
"w_rank": 175,
"l_value": 5.0,
"l_rank": 123,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 66.0,
"ip_rank": 178,
"h_value": 71.0,
"h_rank": 151,
"er_value": 47.0,
"er_rank": 102,
"hr_value": 10.0,
"hr_rank": 143,
"bb_value": 30.0,
"bb_rank": 140,
"k_value": 61.0,
"k_rank": 195,
"k_per_9_value": 8.318182,
"k_per_9_rank": 29.0,
"whip_value": 1.5303,
"whip_rank": null,
"war_value": -1.06,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0586,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0586,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.018,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1449,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9851,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 22,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
}
],
"provenance": {
"prediction": "output/games/20260826_CLE@LAA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_COL@WAS | away | Tanner Gordon | Tanner Gordon | True | 4.0 | 7.0 | 9 | 3 | 1 | -2 | 6/6 | 4/0 | 2/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.752173913043478,
"WHIP": 1.4869565217391303,
"IP": 76.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.722,
"recent_avg_IP": 4.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3602,
"sample_weight": 1.0,
"run_prevention_factor": 1.0306,
"strikeout_factor": 0.9674,
"walk_factor": 0.904,
"homer_factor": 1.1076,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.9,
"bb_percent": 4.4,
"woba": 0.382,
"xwoba": 0.333,
"barrel_percent": 10.1,
"hard_hit_percent": 44.0,
"whiff_percent": 22.6
},
"espn_rank": {
"rank": 302,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "685299",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 20.2,
"ER": 12.0,
"R": 14.0,
"H": 26.0,
"BB": 3.0,
"SO": 15.0,
"HR": 3.0,
"BF": 90.0,
"Pitches": 286.0
},
"per_game": {
"IP": 4.0,
"ER": 2.4,
"R": 2.8,
"H": 5.2,
"BB": 0.6,
"SO": 3.0,
"HR": 0.6,
"BF": 18.0,
"Pitches": 57.2
},
"rates": {
"ERA": 5.2258,
"WHIP": 1.4032,
"ER_per_IP": 0.58065,
"H_per_IP": 1.25806,
"BB_per_IP": 0.14516,
"SO_per_IP": 0.72581,
"HR_per_IP": 0.14516
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 44.1,
"ER": 28.0,
"R": 30.0,
"H": 58.0,
"BB": 8.0,
"SO": 31.0,
"HR": 10.0,
"BF": 197.0,
"Pitches": 676.0
},
"per_game": {
"IP": 4.1,
"ER": 2.8,
"R": 3.0,
"H": 5.8,
"BB": 0.8,
"SO": 3.1,
"HR": 1.0,
"BF": 19.7,
"Pitches": 67.6
},
"rates": {
"ERA": 5.6842,
"WHIP": 1.4887,
"ER_per_IP": 0.63158,
"H_per_IP": 1.30827,
"BB_per_IP": 0.18045,
"SO_per_IP": 0.69925,
"HR_per_IP": 0.22556
}
},
"season": {
"games": 18,
"totals": {
"IP": 76.2,
"ER": 49.0,
"R": 51.0,
"H": 99.0,
"BB": 15.0,
"SO": 64.0,
"HR": 16.0,
"BF": 338.0,
"Pitches": 1193.0
},
"per_game": {
"IP": 4.1,
"ER": 2.7222,
"R": 2.8333,
"H": 5.5,
"BB": 0.8333,
"SO": 3.5556,
"HR": 0.8889,
"BF": 18.7778,
"Pitches": 66.2778
},
"rates": {
"ERA": 5.7522,
"WHIP": 1.487,
"ER_per_IP": 0.63913,
"H_per_IP": 1.2913,
"BB_per_IP": 0.19565,
"SO_per_IP": 0.83478,
"HR_per_IP": 0.2087
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.515,
"predicted_H": 5.212,
"predicted_BB": 0.905,
"predicted_SO": 3.359,
"predicted_HR": 0.761,
"predicted_ERA": 5.2773,
"predicted_WHIP": 1.4265
}
},
"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": 4.2,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.515,
"final": 2.2874,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.212,
"final": 4.2346,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 0.905,
"final": 2.2725,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.359,
"final": 2.7585,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.761,
"final": 0.8666,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.2773,
"final": 5.2773,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4265,
"final": 1.4265,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 44.1,
"ER": 28,
"H": 58,
"BB": 8,
"SO": 31,
"HR": 10,
"ERA": 5.68421052631579,
"WHIP": 1.4887218045112784,
"K9": 6.2932330827067675,
"HR9": 2.030075187969925,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.1491553638587688,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 2.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
}
},
{
"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": 2,
"predicted_H": 3,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 6,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "685299",
"player_name": "Tanner Gordon",
"position": "Starter",
"team": "COL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.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": 6.0,
"delta": 3.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.0,
"delta": -0.6667,
"percent_delta": -0.1429,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "COL",
"games": 132,
"wins": 51,
"losses": 81,
"win_pct": 0.3864,
"runs_scored": 623.0,
"runs_allowed": 767.0,
"run_differential": -144.0,
"run_differential_per_game": -1.0909,
"avg_runs_scored": 4.7197,
"avg_runs_allowed": 5.8106,
"offense_index": 1.057,
"defense_index": 0.7685,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 7.2,
"run_differential": -31.0
},
"available": true,
"quality_score": -0.3359
},
"opponent": {
"team": "WAS",
"games": 134,
"wins": 62,
"losses": 72,
"win_pct": 0.4627,
"runs_scored": 696.0,
"runs_allowed": 678.0,
"run_differential": 18.0,
"run_differential_per_game": 0.1343,
"avg_runs_scored": 5.194,
"avg_runs_allowed": 5.0597,
"offense_index": 1.1632,
"defense_index": 0.8825,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.5,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.1202
},
"edges": {
"quality_edge": -0.2157,
"offense_edge": 0.057,
"opponent_offense_edge": 0.1632,
"defense_strength": -0.2315,
"opponent_defense_weakness": 0.1175,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9779,
"run_prevention": 1.06,
"strikeout": 0.9805
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "685299",
"profile": {
"available": true,
"pitcher_id": "685299",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 306.0,
"k_percent": 18.9,
"bb_percent": 4.4,
"woba": 0.382,
"xwoba": 0.333,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 10.1,
"hard_hit_percent": 44.0,
"avg_best_speed": 82.1412,
"avg_hyper_speed": 94.6926,
"whiff_percent": 22.6,
"swing_percent": 52.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.8425,
"command_and_miss": -0.0893,
"regression_edge": 1.4,
"xwoba_edge": -0.6286,
"barrel_edge": -0.6667,
"hard_hit_edge": -0.8857,
"whiff_edge": -0.3714,
"bb_edge": 1.2,
"pitch_design_score": -0.0651
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "685299",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 54,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 54,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 54,
"pitch_usage": 0.0,
"release_speed": 88.68522008751086,
"release_spin_rate": 2169.693328889431,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6852,
"release_spin_rate": 2169.6933,
"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.0651,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4651,
"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.3602,
"sample_weight": 1.0,
"run_prevention_factor": 1.0306,
"strikeout_factor": 0.9674,
"walk_factor": 0.904,
"homer_factor": 1.1076,
"woba_minus_xwoba": 0.049,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "685299",
"espn_id": 4415658,
"player_name": "Tanner Gordon",
"team": "COL",
"role": "pitcher",
"espn_rank": 302,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 302,
"gp_value": 18.0,
"gp_rank": 387,
"gs_value": 6.0,
"gs_rank": 196,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 5.7521,
"era_rank": null,
"w_value": 0.0,
"w_rank": 507,
"l_value": 4.0,
"l_rank": 162,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 76.2,
"ip_rank": 150,
"h_value": 99.0,
"h_rank": 99,
"er_value": 49.0,
"er_rank": 90,
"hr_value": 16.0,
"hr_rank": 65,
"bb_value": 15.0,
"bb_rank": 352,
"k_value": 64.0,
"k_rank": 179,
"k_per_9_value": 7.5130434,
"k_per_9_rank": 32.0,
"whip_value": 1.4869,
"whip_rank": null,
"war_value": 0.28,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0306,
"adjusted": 4
},
"predicted_H": {
"original": 7.0,
"factor": 1.0306,
"adjusted": 7
},
"predicted_BB": {
"original": 1.0,
"factor": 0.904,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1076,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9674,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 2,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by +9 outs from the projected workload."
},
{
"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/20260826_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_COL@WAS | home | Matt Waldron | Matt Waldron | True | 3.2 | 2.0 | -5 | 3 | 0 | -3 | 3/2 | 1/1 | 7/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 7.54054054054054,
"WHIP": 1.6216216216216217,
"IP": 37.0,
"games_started": null,
"games_pitched": 14,
"role_avg_IP": 4.556,
"recent_avg_IP": 4.556,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.023,
"sample_weight": 0.632,
"run_prevention_factor": 1.002,
"strikeout_factor": 0.9563,
"walk_factor": 0.9583,
"homer_factor": 0.9861,
"regression_flag": "positive_pitcher_regression",
"k_percent": 18.3,
"bb_percent": 5.9,
"woba": 0.392,
"xwoba": 0.3,
"barrel_percent": 6.3,
"hard_hit_percent": 38.1,
"whiff_percent": 16.8
},
"espn_rank": {
"rank": 791,
"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": 7.426,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5976,
"prior_weight": 0.4024
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663362",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 14,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.1,
"ER": 6.0,
"R": 6.0,
"H": 10.0,
"BB": 2.0,
"SO": 4.0,
"HR": 0.0,
"BF": 30.0,
"Pitches": 114.0
},
"per_game": {
"IP": 1.1,
"ER": 1.2,
"R": 1.2,
"H": 2.0,
"BB": 0.4,
"SO": 0.8,
"HR": 0.0,
"BF": 6.0,
"Pitches": 22.8
},
"rates": {
"ERA": 8.5263,
"WHIP": 1.8947,
"ER_per_IP": 0.94737,
"H_per_IP": 1.57895,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.63158,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.1,
"ER": 15.0,
"R": 15.0,
"H": 26.0,
"BB": 5.0,
"SO": 16.0,
"HR": 3.0,
"BF": 83.0,
"Pitches": 303.0
},
"per_game": {
"IP": 2.0,
"ER": 1.5,
"R": 1.5,
"H": 2.6,
"BB": 0.5,
"SO": 1.6,
"HR": 0.3,
"BF": 8.3,
"Pitches": 30.3
},
"rates": {
"ERA": 7.3636,
"WHIP": 1.6909,
"ER_per_IP": 0.81818,
"H_per_IP": 1.41818,
"BB_per_IP": 0.27273,
"SO_per_IP": 0.87273,
"HR_per_IP": 0.16364
}
},
"season": {
"games": 14,
"totals": {
"IP": 37.0,
"ER": 31.0,
"R": 31.0,
"H": 50.0,
"BB": 10.0,
"SO": 31.0,
"HR": 7.0,
"BF": 169.0,
"Pitches": 616.0
},
"per_game": {
"IP": 2.2,
"ER": 2.2143,
"R": 2.2143,
"H": 3.5714,
"BB": 0.7143,
"SO": 2.2143,
"HR": 0.5,
"BF": 12.0714,
"Pitches": 44.0
},
"rates": {
"ERA": 7.5405,
"WHIP": 1.6216,
"ER_per_IP": 0.83784,
"H_per_IP": 1.35135,
"BB_per_IP": 0.27027,
"SO_per_IP": 0.83784,
"HR_per_IP": 0.18919
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 2.163,
"predicted_H": 3.791,
"predicted_BB": 0.958,
"predicted_SO": 2.477,
"predicted_HR": 0.345,
"predicted_ERA": 6.5476,
"predicted_WHIP": 1.5972
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.52,
"form_weight": 0.48,
"form_reliability": 0.5976,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.426,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5976,
"prior_weight": 0.4024
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 3.0,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.163,
"final": 2.5983,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 3.791,
"final": 2.8597,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.958,
"final": 0.9798,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 2.477,
"final": 4.829,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.345,
"final": 0.6856,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 6.5476,
"final": 6.5476,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5972,
"final": 1.5972,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 18.1,
"ER": 15,
"H": 26,
"BB": 5,
"SO": 16,
"HR": 3,
"ERA": 7.363636363636362,
"WHIP": 1.6909090909090907,
"K9": 7.854545454545454,
"HR9": 1.4727272727272724,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-18T00:00:00"
},
"recent_form_boost": 1.205370490928907,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 7.426,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5976,
"prior_weight": 0.4024
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.2,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"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": 3.2,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663362",
"player_name": "Matt Waldron",
"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": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 3.2,
"predicted_R": 3.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.2,
"after": 3.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 3.2,
"delta": -1.4667,
"percent_delta": -0.3143,
"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": 134,
"wins": 62,
"losses": 72,
"win_pct": 0.4627,
"runs_scored": 696.0,
"runs_allowed": 678.0,
"run_differential": 18.0,
"run_differential_per_game": 0.1343,
"avg_runs_scored": 5.194,
"avg_runs_allowed": 5.0597,
"offense_index": 1.1632,
"defense_index": 0.8825,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.3,
"avg_runs_allowed": 3.5,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.1202
},
"opponent": {
"team": "COL",
"games": 132,
"wins": 51,
"losses": 81,
"win_pct": 0.3864,
"runs_scored": 623.0,
"runs_allowed": 767.0,
"run_differential": -144.0,
"run_differential_per_game": -1.0909,
"avg_runs_scored": 4.7197,
"avg_runs_allowed": 5.8106,
"offense_index": 1.057,
"defense_index": 0.7685,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 7.2,
"run_differential": -31.0
},
"available": true,
"quality_score": -0.3359
},
"edges": {
"quality_edge": 0.2157,
"offense_edge": 0.1632,
"opponent_offense_edge": 0.057,
"defense_strength": -0.1175,
"opponent_defense_weakness": 0.2315,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0028,
"run_prevention": 1.0101,
"strikeout": 1.0019
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663362",
"profile": {
"available": true,
"pitcher_id": "663362",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 158.0,
"k_percent": 18.3,
"bb_percent": 5.9,
"woba": 0.392,
"xwoba": 0.3,
"sweet_spot_percent": 26.2,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 38.1,
"avg_best_speed": 79.554,
"avg_hyper_speed": 93.5631,
"whiff_percent": 16.8,
"swing_percent": 48.2
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1637,
"command_and_miss": -0.4929,
"regression_edge": 2.0,
"xwoba_edge": 0.3143,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.0429,
"whiff_edge": -1.2,
"bb_edge": 0.825,
"pitch_design_score": -0.2074
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663362",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 23,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 23,
"pitch_usage": 0.0,
"release_speed": 86.14382832951388,
"release_spin_rate": 1585.7541566210582,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 23,
"pitch_usage": 0.0,
"release_speed": 86.14382832951388,
"release_spin_rate": 1585.7541566210582,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1438,
"release_spin_rate": 1585.7542,
"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.2074,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.4816,
"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.023,
"sample_weight": 0.632,
"run_prevention_factor": 1.002,
"strikeout_factor": 0.9563,
"walk_factor": 0.9583,
"homer_factor": 0.9861,
"woba_minus_xwoba": 0.092,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "663362",
"espn_id": 4020158,
"player_name": "Matt Waldron",
"team": "WSH",
"role": "pitcher",
"espn_rank": 791,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 791,
"gp_value": 14.0,
"gp_rank": 453,
"gs_value": 3.0,
"gs_rank": 245,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 7.5405,
"era_rank": null,
"w_value": 1.0,
"w_rank": 387,
"l_value": 2.0,
"l_rank": 301,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 1.0,
"hld_rank": 252,
"ip_value": 37.0,
"ip_rank": 365,
"h_value": 50.0,
"h_rank": 219,
"er_value": 31.0,
"er_rank": 172,
"hr_value": 7.0,
"hr_rank": 212,
"bb_value": 10.0,
"bb_rank": 455,
"k_value": 31.0,
"k_rank": 390,
"k_per_9_value": 7.54054,
"k_per_9_rank": 28.0,
"whip_value": 1.6216,
"whip_rank": null,
"war_value": -0.79,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 5.0,
"factor": 1.0013,
"adjusted": 5
},
"predicted_H": {
"original": 8.0,
"factor": 1.0013,
"adjusted": 8
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9736,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9912,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9724,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 15,
"Pitches": 71,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260826_COL@WAS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_HOU@NYY | away | Peter Lambert | Peter Lambert | True | 5.1 | 5.2 | 1 | 2 | 2 | 0 | 6/7 | 2/3 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6784741144414173,
"WHIP": 1.2016348773841963,
"IP": 122.1,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.561,
"recent_avg_IP": 4.867,
"last_start_IP": 3.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2571,
"sample_weight": 1.0,
"run_prevention_factor": 0.9781,
"strikeout_factor": 1.0091,
"walk_factor": 1.002,
"homer_factor": 0.9681,
"regression_flag": "neutral",
"k_percent": 23.3,
"bb_percent": 9.3,
"woba": 0.289,
"xwoba": 0.288,
"barrel_percent": 6.8,
"hard_hit_percent": 36.6,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 35,
"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": "663567",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 17.0,
"R": 18.0,
"H": 27.0,
"BB": 10.0,
"SO": 26.0,
"HR": 1.0,
"BF": 111.0,
"Pitches": 445.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 3.6,
"H": 5.4,
"BB": 2.0,
"SO": 5.2,
"HR": 0.2,
"BF": 22.2,
"Pitches": 89.0
},
"rates": {
"ERA": 6.2877,
"WHIP": 1.5205,
"ER_per_IP": 0.69863,
"H_per_IP": 1.10959,
"BB_per_IP": 0.41096,
"SO_per_IP": 1.06849,
"HR_per_IP": 0.0411
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 25.0,
"R": 26.0,
"H": 47.0,
"BB": 20.0,
"SO": 56.0,
"HR": 5.0,
"BF": 231.0,
"Pitches": 935.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5,
"R": 2.6,
"H": 4.7,
"BB": 2.0,
"SO": 5.6,
"HR": 0.5,
"BF": 23.1,
"Pitches": 93.5
},
"rates": {
"ERA": 4.1925,
"WHIP": 1.2484,
"ER_per_IP": 0.46584,
"H_per_IP": 0.87578,
"BB_per_IP": 0.37267,
"SO_per_IP": 1.04348,
"HR_per_IP": 0.09317
}
},
"season": {
"games": 22,
"totals": {
"IP": 122.1,
"ER": 50.0,
"R": 51.0,
"H": 99.0,
"BB": 48.0,
"SO": 120.0,
"HR": 12.0,
"BF": 516.0,
"Pitches": 2064.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2727,
"R": 2.3182,
"H": 4.5,
"BB": 2.1818,
"SO": 5.4545,
"HR": 0.5455,
"BF": 23.4545,
"Pitches": 93.8182
},
"rates": {
"ERA": 3.6785,
"WHIP": 1.2016,
"ER_per_IP": 0.40872,
"H_per_IP": 0.80926,
"BB_per_IP": 0.39237,
"SO_per_IP": 0.98093,
"HR_per_IP": 0.09809
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.887,
"predicted_H": 5.102,
"predicted_BB": 2.048,
"predicted_SO": 5.394,
"predicted_HR": 0.446,
"predicted_ERA": 4.9351,
"predicted_WHIP": 1.358
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.887,
"final": 2.0789,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.102,
"final": 5.4866,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.048,
"final": 2.0274,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.394,
"final": 5.2253,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.446,
"final": 0.255,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9351,
"final": 4.9351,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.358,
"final": 1.358,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 25,
"H": 47,
"BB": 20,
"SO": 56,
"HR": 5,
"ERA": 4.192546583850932,
"WHIP": 1.2484472049689441,
"K9": 9.391304347826088,
"HR9": 0.8385093167701864,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.9753363053429138,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663567",
"player_name": "Peter Lambert",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 6.0,
"predicted_HR": 0.0,
"predicted_IP": 5.1,
"predicted_R": 1.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": "HOU",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 605.0,
"runs_allowed": 647.0,
"run_differential": -42.0,
"run_differential_per_game": -0.3182,
"avg_runs_scored": 4.5833,
"avg_runs_allowed": 4.9015,
"offense_index": 1.0264,
"defense_index": 0.911,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 6.1,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.0742
},
"opponent": {
"team": "NYY",
"games": 131,
"wins": 74,
"losses": 57,
"win_pct": 0.5649,
"runs_scored": 586.0,
"runs_allowed": 488.0,
"run_differential": 98.0,
"run_differential_per_game": 0.7481,
"avg_runs_scored": 4.4733,
"avg_runs_allowed": 3.7252,
"offense_index": 1.0018,
"defense_index": 1.1987,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.2,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1823
},
"edges": {
"quality_edge": -0.2565,
"offense_edge": 0.0264,
"opponent_offense_edge": 0.0018,
"defense_strength": -0.089,
"opponent_defense_weakness": -0.1987,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.987,
"run_prevention": 1.022,
"strikeout": 0.9922
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663567",
"profile": {
"available": true,
"pitcher_id": "663567",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 23.3,
"bb_percent": 9.3,
"woba": 0.289,
"xwoba": 0.288,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 36.6,
"avg_best_speed": 78.4075,
"avg_hyper_speed": 93.621,
"whiff_percent": 25.5,
"swing_percent": 48.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4144,
"command_and_miss": 0.0936,
"regression_edge": 0.0286,
"xwoba_edge": 0.6571,
"barrel_edge": 0.0667,
"hard_hit_edge": 0.1714,
"whiff_edge": 0.0429,
"bb_edge": -0.025,
"pitch_design_score": -0.0271
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663567",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 89.36448787171314,
"release_spin_rate": 2218.202787194397,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3645,
"release_spin_rate": 2218.2028,
"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.0271,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1933,
"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": 1.0,
"run_prevention_factor": 0.9781,
"strikeout_factor": 1.0091,
"walk_factor": 1.002,
"homer_factor": 0.9681,
"woba_minus_xwoba": 0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663567",
"espn_id": 39898,
"player_name": "Peter Lambert",
"team": "HOU",
"role": "pitcher",
"espn_rank": 35,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 35,
"gp_value": 22.0,
"gp_rank": 335,
"gs_value": 22.0,
"gs_rank": 72,
"qs_value": 8.0,
"qs_rank": 69,
"era_value": 3.6784,
"era_rank": null,
"w_value": 8.0,
"w_rank": 47,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 122.1,
"ip_rank": 77,
"h_value": 99.0,
"h_rank": 99,
"er_value": 50.0,
"er_rank": 84,
"hr_value": 12.0,
"hr_rank": 119,
"bb_value": 48.0,
"bb_rank": 32,
"k_value": 120.0,
"k_rank": 54,
"k_per_9_value": 8.828338,
"k_per_9_rank": 18.0,
"whip_value": 1.2016,
"whip_rank": null,
"war_value": 2.75,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9781,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9781,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9681,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0091,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 105,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260826_HOU@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_HOU@NYY | home | Elmer Rodríguez | Elmer Rodríguez | True | 4.1 | 6.0 | 5 | 2 | 3 | 1 | 5/3 | 3/2 | 4/6 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 4.764705882352941,
"WHIP": 1.7647058823529411,
"IP": 17.0,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.25,
"recent_avg_IP": 4.25,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2575,
"sample_weight": 0.45,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9789,
"walk_factor": 1.0369,
"homer_factor": 0.9975,
"regression_flag": "neutral",
"k_percent": 12.0,
"bb_percent": 13.3,
"woba": 0.35,
"xwoba": 0.366,
"barrel_percent": 5.2,
"hard_hit_percent": 34.5,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695684",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 17.0,
"ER": 9.0,
"R": 9.0,
"H": 19.0,
"BB": 11.0,
"SO": 10.0,
"HR": 1.0,
"BF": 83.0,
"Pitches": 318.0
},
"per_game": {
"IP": 4.1,
"ER": 2.25,
"R": 2.25,
"H": 4.75,
"BB": 2.75,
"SO": 2.5,
"HR": 0.25,
"BF": 20.75,
"Pitches": 79.5
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.7647,
"ER_per_IP": 0.52941,
"H_per_IP": 1.11765,
"BB_per_IP": 0.64706,
"SO_per_IP": 0.58824,
"HR_per_IP": 0.05882
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 17.0,
"ER": 9.0,
"R": 9.0,
"H": 19.0,
"BB": 11.0,
"SO": 10.0,
"HR": 1.0,
"BF": 83.0,
"Pitches": 318.0
},
"per_game": {
"IP": 4.1,
"ER": 2.25,
"R": 2.25,
"H": 4.75,
"BB": 2.75,
"SO": 2.5,
"HR": 0.25,
"BF": 20.75,
"Pitches": 79.5
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.7647,
"ER_per_IP": 0.52941,
"H_per_IP": 1.11765,
"BB_per_IP": 0.64706,
"SO_per_IP": 0.58824,
"HR_per_IP": 0.05882
}
},
"season": {
"games": 4,
"totals": {
"IP": 17.0,
"ER": 9.0,
"R": 9.0,
"H": 19.0,
"BB": 11.0,
"SO": 10.0,
"HR": 1.0,
"BF": 83.0,
"Pitches": 318.0
},
"per_game": {
"IP": 4.1,
"ER": 2.25,
"R": 2.25,
"H": 4.75,
"BB": 2.75,
"SO": 2.5,
"HR": 0.25,
"BF": 20.75,
"Pitches": 79.5
},
"rates": {
"ERA": 4.7647,
"WHIP": 1.7647,
"ER_per_IP": 0.52941,
"H_per_IP": 1.11765,
"BB_per_IP": 0.64706,
"SO_per_IP": 0.58824,
"HR_per_IP": 0.05882
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.32,
"predicted_H": 4.691,
"predicted_BB": 2.223,
"predicted_SO": 3.555,
"predicted_HR": 0.486,
"predicted_ERA": 4.6211,
"predicted_WHIP": 1.5301
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.32,
"final": 2.1329,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.691,
"final": 3.7022,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.223,
"final": 2.6773,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.555,
"final": 3.8152,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.486,
"final": 0.2018,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6211,
"final": 4.6211,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5301,
"final": 1.5301,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 17.0,
"ER": 9,
"H": 19,
"BB": 11,
"SO": 10,
"HR": 1,
"ERA": 4.764705882352941,
"WHIP": 1.7647058823529411,
"K9": 5.294117647058823,
"HR9": 0.5294117647058824,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-06-21T00:00:00"
},
"recent_form_boost": 1.0291972067515134,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"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": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"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": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695684",
"player_name": "Elmer Rodr\u00edguez",
"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": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.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": 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": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 2.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": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"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": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 4.1,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 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": 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": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"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": 1,
"deboosted_metrics": 1,
"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": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.1,
"delta": -0.5667,
"percent_delta": -0.1214,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 131,
"wins": 74,
"losses": 57,
"win_pct": 0.5649,
"runs_scored": 586.0,
"runs_allowed": 488.0,
"run_differential": 98.0,
"run_differential_per_game": 0.7481,
"avg_runs_scored": 4.4733,
"avg_runs_allowed": 3.7252,
"offense_index": 1.0018,
"defense_index": 1.1987,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.2,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.1823
},
"opponent": {
"team": "HOU",
"games": 132,
"wins": 66,
"losses": 66,
"win_pct": 0.5,
"runs_scored": 605.0,
"runs_allowed": 647.0,
"run_differential": -42.0,
"run_differential_per_game": -0.3182,
"avg_runs_scored": 4.5833,
"avg_runs_allowed": 4.9015,
"offense_index": 1.0264,
"defense_index": 0.911,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 6.1,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.0742
},
"edges": {
"quality_edge": 0.2565,
"offense_edge": 0.0018,
"opponent_offense_edge": 0.0264,
"defense_strength": 0.1987,
"opponent_defense_weakness": 0.089,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0152,
"run_prevention": 0.9715,
"strikeout": 1.0056
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695684",
"profile": {
"available": true,
"pitcher_id": "695684",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 64.0,
"k_percent": 12.0,
"bb_percent": 13.3,
"woba": 0.35,
"xwoba": 0.366,
"sweet_spot_percent": 31.0,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 34.5,
"avg_best_speed": 75.2997,
"avg_hyper_speed": 93.4961,
"whiff_percent": 27.0,
"swing_percent": 39.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.5895,
"command_and_miss": -0.7579,
"regression_edge": -0.4571,
"xwoba_edge": -1.5714,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.4714,
"whiff_edge": 0.2571,
"bb_edge": -1.025,
"pitch_design_score": 0.0073
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695684",
"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": 89.97847960992908,
"release_spin_rate": 1931.3415780141843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.97847960992908,
"release_spin_rate": 1931.3415780141843,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9785,
"release_spin_rate": 1931.3416,
"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.0073,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0522,
"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.2575,
"sample_weight": 0.45,
"run_prevention_factor": 1.0219,
"strikeout_factor": 0.9789,
"walk_factor": 1.0369,
"homer_factor": 0.9975,
"woba_minus_xwoba": -0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695684",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0099,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0099,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0166,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9989,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9905,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "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/20260826_HOU@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_KC@TOR | away | Randy Dobnak | Randy Dobnak | True | 5.0 | 6.0 | 3 | 3 | 3 | 0 | 3/6 | 3/1 | 5/5 | Last 10 before this game (9 available){
"model_context": {
"embedded_season": {
"ERA": 1.5766423357664234,
"WHIP": 1.4014598540145986,
"IP": 45.2,
"games_started": null,
"games_pitched": 9,
"role_avg_IP": 5.143,
"recent_avg_IP": 5.333,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.257,
"sample_weight": 0.696,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9523,
"walk_factor": 1.0139,
"homer_factor": 0.9799,
"regression_flag": "negative_pitcher_regression",
"k_percent": 14.8,
"bb_percent": 10.2,
"woba": 0.299,
"xwoba": 0.334,
"barrel_percent": 3.4,
"hard_hit_percent": 40.8,
"whiff_percent": 20.4
},
"espn_rank": {
"rank": 63,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 45.2,
"season_ERA": 1.577,
"season_WHIP": 1.401,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.6164383561643836,
"last_10": 0.3835616438356164
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "677976",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 9,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 5.0,
"R": 5.0,
"H": 27.0,
"BB": 11.0,
"SO": 19.0,
"HR": 0.0,
"BF": 116.0,
"Pitches": 474.0
},
"per_game": {
"IP": 5.1,
"ER": 1.0,
"R": 1.0,
"H": 5.4,
"BB": 2.2,
"SO": 3.8,
"HR": 0.0,
"BF": 23.2,
"Pitches": 94.8
},
"rates": {
"ERA": 1.6875,
"WHIP": 1.425,
"ER_per_IP": 0.1875,
"H_per_IP": 1.0125,
"BB_per_IP": 0.4125,
"SO_per_IP": 0.7125,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 9,
"totals": {
"IP": 45.2,
"ER": 8.0,
"R": 8.0,
"H": 44.0,
"BB": 20.0,
"SO": 29.0,
"HR": 2.0,
"BF": 196.0,
"Pitches": 805.0
},
"per_game": {
"IP": 5.0,
"ER": 0.8889,
"R": 0.8889,
"H": 4.8889,
"BB": 2.2222,
"SO": 3.2222,
"HR": 0.2222,
"BF": 21.7778,
"Pitches": 89.4444
},
"rates": {
"ERA": 1.5766,
"WHIP": 1.4015,
"ER_per_IP": 0.17518,
"H_per_IP": 0.9635,
"BB_per_IP": 0.43796,
"SO_per_IP": 0.63504,
"HR_per_IP": 0.0438
}
},
"season": {
"games": 9,
"totals": {
"IP": 45.2,
"ER": 8.0,
"R": 8.0,
"H": 44.0,
"BB": 20.0,
"SO": 29.0,
"HR": 2.0,
"BF": 196.0,
"Pitches": 805.0
},
"per_game": {
"IP": 5.0,
"ER": 0.8889,
"R": 0.8889,
"H": 4.8889,
"BB": 2.2222,
"SO": 3.2222,
"HR": 0.2222,
"BF": 21.7778,
"Pitches": 89.4444
},
"rates": {
"ERA": 1.5766,
"WHIP": 1.4015,
"ER_per_IP": 0.17518,
"H_per_IP": 0.9635,
"BB_per_IP": 0.43796,
"SO_per_IP": 0.63504,
"HR_per_IP": 0.0438
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.591,
"predicted_H": 5.3,
"predicted_BB": 2.163,
"predicted_SO": 4.171,
"predicted_HR": 0.339,
"predicted_ERA": 2.6667,
"predicted_WHIP": 1.3898
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5009,
"form_weight": 0.4991,
"form_reliability": 0.6429,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.591,
"final": 2.2967,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.3,
"final": 4.148,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.163,
"final": 2.5822,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.171,
"final": 4.5862,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.339,
"final": 0.6701,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.6667,
"final": 2.6667,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3898,
"final": 1.3898,
"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": 8,
"H": 44,
"BB": 20,
"SO": 29,
"HR": 2,
"ERA": 1.5766423357664232,
"WHIP": 1.4014598540145984,
"K9": 5.7153284671532845,
"HR9": 0.3941605839416058,
"games_pitched": 9,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 9,
"error_prone": false
},
"games_count": 9,
"latest_game_date": "2026-08-20T00:00:00"
},
"recent_form_boost": 0.7022799271051579,
"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": 3.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6429,
"prior_weight": 0.3571
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "677976",
"player_name": "Randy Dobnak",
"position": "Starter",
"team": "KC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.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": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.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": 3.0,
"predicted_H": 3.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": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "KC",
"games": 133,
"wins": 59,
"losses": 74,
"win_pct": 0.4436,
"runs_scored": 565.0,
"runs_allowed": 654.0,
"run_differential": -89.0,
"run_differential_per_game": -0.6692,
"avg_runs_scored": 4.2481,
"avg_runs_allowed": 4.9173,
"offense_index": 0.9514,
"defense_index": 0.9081,
"current_streak": "W9",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0096
},
"opponent": {
"team": "TOR",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 524.0,
"runs_allowed": 581.0,
"run_differential": -57.0,
"run_differential_per_game": -0.4286,
"avg_runs_scored": 3.9398,
"avg_runs_allowed": 4.3684,
"offense_index": 0.8823,
"defense_index": 1.0222,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0688
},
"edges": {
"quality_edge": 0.0784,
"offense_edge": -0.0486,
"opponent_offense_edge": -0.1177,
"defense_strength": -0.0919,
"opponent_defense_weakness": -0.0222,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0051,
"run_prevention": 0.9864,
"strikeout": 1.0118
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "677976",
"profile": {
"available": true,
"pitcher_id": "677976",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 174.0,
"k_percent": 14.8,
"bb_percent": 10.2,
"woba": 0.299,
"xwoba": 0.334,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 3.4,
"hard_hit_percent": 40.8,
"avg_best_speed": 79.7384,
"avg_hyper_speed": 94.665,
"whiff_percent": 20.4,
"swing_percent": 45.7
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1113,
"command_and_miss": -0.7529,
"regression_edge": -1.0,
"xwoba_edge": -0.6571,
"barrel_edge": 0.8222,
"hard_hit_edge": -0.4286,
"whiff_edge": -0.6857,
"bb_edge": -0.25,
"pitch_design_score": -0.14
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "677976",
"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": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.34840198382811,
"release_spin_rate": 2038.5773448044797,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3484,
"release_spin_rate": 2038.5773,
"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.14,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.9998,
"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.257,
"sample_weight": 0.696,
"run_prevention_factor": 1.0218,
"strikeout_factor": 0.9523,
"walk_factor": 1.0139,
"homer_factor": 0.9799,
"woba_minus_xwoba": -0.035,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "677976",
"espn_id": 42214,
"player_name": "Randy Dobnak",
"team": "KC",
"role": "pitcher",
"espn_rank": 63,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 63,
"gp_value": 9.0,
"gp_rank": 517,
"gs_value": 7.0,
"gs_rank": 193,
"qs_value": 1.0,
"qs_rank": 173,
"era_value": 1.5766,
"era_rank": null,
"w_value": 2.0,
"w_rank": 293,
"l_value": 1.0,
"l_rank": 403,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 45.2,
"ip_rank": 299,
"h_value": 44.0,
"h_rank": 258,
"er_value": 8.0,
"er_rank": 550,
"hr_value": 2.0,
"hr_rank": 486,
"bb_value": 20.0,
"bb_rank": 262,
"k_value": 29.0,
"k_rank": 404,
"k_per_9_value": 5.715328,
"k_per_9_rank": 36.0,
"whip_value": 1.4014,
"whip_rank": null,
"war_value": 2.09,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0152,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 1.0152,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0097,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.986,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9668,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 85,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 9 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "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/20260826_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_KC@TOR | home | Spencer Miles | Spencer Miles | True | 5.0 | 2.0 | -9 | 1 | 0 | -1 | 2/2 | 2/0 | 9/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0248962655601663,
"WHIP": 1.095435684647303,
"IP": 80.1,
"games_started": null,
"games_pitched": 40,
"role_avg_IP": 3.5,
"recent_avg_IP": 3.5,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4975,
"sample_weight": 1.0,
"run_prevention_factor": 0.9577,
"strikeout_factor": 0.9657,
"walk_factor": 0.94,
"homer_factor": 0.886,
"regression_flag": "neutral",
"k_percent": 22.5,
"bb_percent": 6.2,
"woba": 0.262,
"xwoba": 0.27,
"barrel_percent": 3.5,
"hard_hit_percent": 35.2,
"whiff_percent": 18.7
},
"espn_rank": {
"rank": 81,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 80.1,
"season_ERA": 3.025,
"season_WHIP": 1.095,
"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.122,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7633,
"prior_weight": 0.2367
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693686",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 40,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.1,
"ER": 0.0,
"R": 0.0,
"H": 3.0,
"BB": 0.0,
"SO": 1.0,
"HR": 0.0,
"BF": 16.0,
"Pitches": 51.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.0,
"SO": 0.2,
"HR": 0.0,
"BF": 3.2,
"Pitches": 10.2
},
"rates": {
"ERA": 0.0,
"WHIP": 0.6923,
"ER_per_IP": 0.0,
"H_per_IP": 0.69231,
"BB_per_IP": 0.0,
"SO_per_IP": 0.23077,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.1,
"ER": 2.0,
"R": 2.0,
"H": 10.0,
"BB": 1.0,
"SO": 5.0,
"HR": 0.0,
"BF": 42.0,
"Pitches": 146.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.1,
"SO": 0.5,
"HR": 0.0,
"BF": 4.2,
"Pitches": 14.6
},
"rates": {
"ERA": 1.7419,
"WHIP": 1.0645,
"ER_per_IP": 0.19355,
"H_per_IP": 0.96774,
"BB_per_IP": 0.09677,
"SO_per_IP": 0.48387,
"HR_per_IP": 0.0
}
},
"season": {
"games": 40,
"totals": {
"IP": 80.1,
"ER": 27.0,
"R": 29.0,
"H": 68.0,
"BB": 20.0,
"SO": 73.0,
"HR": 5.0,
"BF": 324.0,
"Pitches": 1244.0
},
"per_game": {
"IP": 2.0,
"ER": 0.675,
"R": 0.725,
"H": 1.7,
"BB": 0.5,
"SO": 1.825,
"HR": 0.125,
"BF": 8.1,
"Pitches": 31.1
},
"rates": {
"ERA": 3.0249,
"WHIP": 1.0954,
"ER_per_IP": 0.3361,
"H_per_IP": 0.84647,
"BB_per_IP": 0.24896,
"SO_per_IP": 0.90871,
"HR_per_IP": 0.06224
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 0.5,
"predicted_H": 1.933,
"predicted_BB": 0.341,
"predicted_SO": 1.289,
"predicted_HR": 0.1,
"predicted_ERA": 1.9938,
"predicted_WHIP": 1.0072
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.45,
"form_weight": 0.55,
"form_reliability": 0.7633,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.122,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7633,
"prior_weight": 0.2367
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.1,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.5,
"final": 0.725,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.933,
"final": 1.9632,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 0.341,
"final": 1.0876,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 1.289,
"final": 4.759,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.1,
"final": 0.055,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9938,
"final": 1.9938,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0072,
"final": 1.0072,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.1,
"ER": 2,
"H": 10,
"BB": 1,
"SO": 5,
"HR": 0,
"ERA": 1.741935483870968,
"WHIP": 1.0645161290322582,
"K9": 4.35483870967742,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-22T00:00:00"
},
"recent_form_boost": 0.8971283793757396,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_BB": 2.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.122,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7633,
"prior_weight": 0.2367
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 2,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693686",
"player_name": "Spencer Miles",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"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": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 524.0,
"runs_allowed": 581.0,
"run_differential": -57.0,
"run_differential_per_game": -0.4286,
"avg_runs_scored": 3.9398,
"avg_runs_allowed": 4.3684,
"offense_index": 0.8823,
"defense_index": 1.0222,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 3.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.0688
},
"opponent": {
"team": "KC",
"games": 133,
"wins": 59,
"losses": 74,
"win_pct": 0.4436,
"runs_scored": 565.0,
"runs_allowed": 654.0,
"run_differential": -89.0,
"run_differential_per_game": -0.6692,
"avg_runs_scored": 4.2481,
"avg_runs_allowed": 4.9173,
"offense_index": 0.9514,
"defense_index": 0.9081,
"current_streak": "W9",
"recent": {
"games": 10,
"wins": 9,
"losses": 1,
"win_pct": 0.9,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 3.1,
"run_differential": 24.0
},
"available": true,
"quality_score": 0.0096
},
"edges": {
"quality_edge": -0.0784,
"offense_edge": -0.1177,
"opponent_offense_edge": -0.0486,
"defense_strength": 0.0222,
"opponent_defense_weakness": 0.0919,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9995,
"run_prevention": 0.9939,
"strikeout": 1.0015
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693686",
"profile": {
"available": true,
"pitcher_id": "693686",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 317.0,
"k_percent": 22.5,
"bb_percent": 6.2,
"woba": 0.262,
"xwoba": 0.27,
"sweet_spot_percent": 27.4,
"barrel_batted_rate": 3.5,
"hard_hit_percent": 35.2,
"avg_best_speed": 75.3265,
"avg_hyper_speed": 93.0347,
"whiff_percent": 18.7,
"swing_percent": 48.2
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9862,
"command_and_miss": -0.1429,
"regression_edge": -0.2286,
"xwoba_edge": 1.1714,
"barrel_edge": 0.8,
"hard_hit_edge": 0.3714,
"whiff_edge": -0.9286,
"bb_edge": 0.75,
"pitch_design_score": 0.0656
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693686",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 12,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 12,
"pitch_usage": 0.0,
"release_speed": 91.01993422348478,
"release_spin_rate": 2457.7211257707427,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 12,
"pitch_usage": 0.0,
"release_speed": 91.01993422348478,
"release_spin_rate": 2457.7211257707427,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0199,
"release_spin_rate": 2457.7211,
"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.0656,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4688,
"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.4975,
"sample_weight": 1.0,
"run_prevention_factor": 0.9577,
"strikeout_factor": 0.9657,
"walk_factor": 0.94,
"homer_factor": 0.886,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693686",
"espn_id": 4833671,
"player_name": "Spencer Miles",
"team": "TOR",
"role": "pitcher",
"espn_rank": 81,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 81,
"gp_value": 40.0,
"gp_rank": 149,
"gs_value": 4.0,
"gs_rank": 218,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 3.0248,
"era_rank": null,
"w_value": 5.0,
"w_rank": 123,
"l_value": 2.0,
"l_rank": 301,
"sv_value": 1.0,
"sv_rank": 128,
"hld_value": 4.0,
"hld_rank": 179,
"ip_value": 80.1,
"ip_rank": 144,
"h_value": 68.0,
"h_rank": 156,
"er_value": 27.0,
"er_rank": 197,
"hr_value": 5.0,
"hr_rank": 289,
"bb_value": 20.0,
"bb_rank": 262,
"k_value": 73.0,
"k_rank": 152,
"k_per_9_value": 8.178423,
"k_per_9_rank": 28.0,
"whip_value": 1.0954,
"whip_rank": null,
"war_value": 1.81,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 0.9577,
"adjusted": 4
},
"predicted_H": {
"original": 6.0,
"factor": 0.9577,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.94,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.886,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9657,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 89,
"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/20260826_KC@TOR.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_LAD@ATL | away | Roki Sasaki | Roki Sasaki | True | 5.2 | 3.1 | -7 | 2 | 4 | 2 | 1/6 | 0/2 | 2/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.422413793103448,
"WHIP": 1.3017241379310345,
"IP": 116.0,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.273,
"recent_avg_IP": 5.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.074,
"sample_weight": 1.0,
"run_prevention_factor": 1.0063,
"strikeout_factor": 1.032,
"walk_factor": 1.002,
"homer_factor": 1.088,
"regression_flag": "neutral",
"k_percent": 23.1,
"bb_percent": 9.3,
"woba": 0.338,
"xwoba": 0.317,
"barrel_percent": 9.8,
"hard_hit_percent": 43.9,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 236,
"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": "808963",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 9.0,
"R": 9.0,
"H": 23.0,
"BB": 12.0,
"SO": 29.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 470.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8,
"R": 1.8,
"H": 4.6,
"BB": 2.4,
"SO": 5.8,
"HR": 0.4,
"BF": 23.8,
"Pitches": 94.0
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.1932,
"ER_per_IP": 0.30682,
"H_per_IP": 0.78409,
"BB_per_IP": 0.40909,
"SO_per_IP": 0.98864,
"HR_per_IP": 0.06818
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 24.0,
"R": 25.0,
"H": 46.0,
"BB": 22.0,
"SO": 50.0,
"HR": 10.0,
"BF": 223.0,
"Pitches": 901.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4,
"R": 2.5,
"H": 4.6,
"BB": 2.2,
"SO": 5.0,
"HR": 1.0,
"BF": 22.3,
"Pitches": 90.1
},
"rates": {
"ERA": 4.0248,
"WHIP": 1.2671,
"ER_per_IP": 0.4472,
"H_per_IP": 0.85714,
"BB_per_IP": 0.40994,
"SO_per_IP": 0.93168,
"HR_per_IP": 0.18634
}
},
"season": {
"games": 22,
"totals": {
"IP": 116.0,
"ER": 57.0,
"R": 59.0,
"H": 105.0,
"BB": 46.0,
"SO": 114.0,
"HR": 21.0,
"BF": 493.0,
"Pitches": 1986.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5909,
"R": 2.6818,
"H": 4.7727,
"BB": 2.0909,
"SO": 5.1818,
"HR": 0.9545,
"BF": 22.4091,
"Pitches": 90.2727
},
"rates": {
"ERA": 4.4224,
"WHIP": 1.3017,
"ER_per_IP": 0.49138,
"H_per_IP": 0.90517,
"BB_per_IP": 0.39655,
"SO_per_IP": 0.98276,
"HR_per_IP": 0.18103
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.328,
"predicted_H": 4.85,
"predicted_BB": 2.254,
"predicted_SO": 5.433,
"predicted_HR": 0.76,
"predicted_ERA": 3.7155,
"predicted_WHIP": 1.2596
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.328,
"final": 2.1875,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.85,
"final": 3.6295,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.254,
"final": 1.2887,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 5.433,
"final": 3.9628,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.76,
"final": 0.4345,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7155,
"final": 3.7155,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2596,
"final": 1.2596,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 53.2,
"ER": 24,
"H": 46,
"BB": 22,
"SO": 50,
"HR": 10,
"ERA": 4.024844720496895,
"WHIP": 1.2670807453416149,
"K9": 8.385093167701864,
"HR9": 1.6770186335403727,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 0.9569356842249015,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "808963",
"player_name": "Roki Sasaki",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 2.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": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 132,
"wins": 80,
"losses": 52,
"win_pct": 0.6061,
"runs_scored": 656.0,
"runs_allowed": 506.0,
"run_differential": 150.0,
"run_differential_per_game": 1.1364,
"avg_runs_scored": 4.9697,
"avg_runs_allowed": 3.8333,
"offense_index": 1.113,
"defense_index": 1.1649,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.7,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.3002
},
"opponent": {
"team": "ATL",
"games": 132,
"wins": 77,
"losses": 55,
"win_pct": 0.5833,
"runs_scored": 618.0,
"runs_allowed": 507.0,
"run_differential": 111.0,
"run_differential_per_game": 0.8409,
"avg_runs_scored": 4.6818,
"avg_runs_allowed": 3.8409,
"offense_index": 1.0485,
"defense_index": 1.1626,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.8,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1394
},
"edges": {
"quality_edge": 0.1608,
"offense_edge": 0.113,
"opponent_offense_edge": 0.0485,
"defense_strength": 0.1649,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0094,
"run_prevention": 0.9832,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "808963",
"profile": {
"available": true,
"pitcher_id": "808963",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 469.0,
"k_percent": 23.1,
"bb_percent": 9.3,
"woba": 0.338,
"xwoba": 0.317,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 9.8,
"hard_hit_percent": 43.9,
"avg_best_speed": 79.0412,
"avg_hyper_speed": 94.5398,
"whiff_percent": 29.7,
"swing_percent": 50.2
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3938,
"command_and_miss": 0.2907,
"regression_edge": 0.6,
"xwoba_edge": -0.1714,
"barrel_edge": -0.6,
"hard_hit_edge": -0.8714,
"whiff_edge": 0.6429,
"bb_edge": -0.025,
"pitch_design_score": 0.137
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "808963",
"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": 92.29431561335473,
"release_spin_rate": 1705.237151996287,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.29431561335473,
"release_spin_rate": 1705.237151996287,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2943,
"release_spin_rate": 1705.2372,
"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.137,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.9786,
"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.074,
"sample_weight": 1.0,
"run_prevention_factor": 1.0063,
"strikeout_factor": 1.032,
"walk_factor": 1.002,
"homer_factor": 1.088,
"woba_minus_xwoba": 0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "808963",
"espn_id": 5134638,
"player_name": "Roki Sasaki",
"team": "LAD",
"role": "pitcher",
"espn_rank": 236,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 236,
"gp_value": 22.0,
"gp_rank": 335,
"gs_value": 22.0,
"gs_rank": 72,
"qs_value": 7.0,
"qs_rank": 73,
"era_value": 4.4224,
"era_rank": null,
"w_value": 5.0,
"w_rank": 123,
"l_value": 5.0,
"l_rank": 123,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 116.0,
"ip_rank": 89,
"h_value": 105.0,
"h_rank": 89,
"er_value": 57.0,
"er_rank": 58,
"hr_value": 21.0,
"hr_rank": 21,
"bb_value": 46.0,
"bb_rank": 39,
"k_value": 114.0,
"k_rank": 63,
"k_per_9_value": 8.844828,
"k_per_9_rank": 19.0,
"whip_value": 1.3017,
"whip_rank": null,
"war_value": 0.58,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0063,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0063,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.088,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.032,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 1,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 19,
"Pitches": 74,
"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."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260826_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_LAD@ATL | home | AJ Smith-Shawver | AJ Smith-Shawver | True | 4.0 | 5.0 | 3 | 2 | 3 | 1 | 2/5 | 0/3 | 2/3 | Last 10 before this game (2 available){
"model_context": {
"embedded_season": {
"ERA": 6.230769230769231,
"WHIP": 1.6153846153846154,
"IP": 8.2,
"games_started": null,
"games_pitched": 2,
"role_avg_IP": 4.333,
"recent_avg_IP": 4.333,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2753,
"sample_weight": 0.45,
"run_prevention_factor": 1.0234,
"strikeout_factor": 0.9787,
"walk_factor": 1.0297,
"homer_factor": 1.0147,
"regression_flag": "negative_pitcher_regression",
"k_percent": 17.5,
"bb_percent": 12.5,
"woba": 0.297,
"xwoba": 0.363,
"barrel_percent": 7.1,
"hard_hit_percent": 35.7,
"whiff_percent": 21.4
},
"espn_rank": {
"rank": 579,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "700363",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 2,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 2,
"totals": {
"IP": 8.2,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 5.0,
"SO": 7.0,
"HR": 0.0,
"BF": 40.0,
"Pitches": 144.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 2.5,
"SO": 3.5,
"HR": 0.0,
"BF": 20.0,
"Pitches": 72.0
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.6154,
"ER_per_IP": 0.69231,
"H_per_IP": 1.03846,
"BB_per_IP": 0.57692,
"SO_per_IP": 0.80769,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 2,
"totals": {
"IP": 8.2,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 5.0,
"SO": 7.0,
"HR": 0.0,
"BF": 40.0,
"Pitches": 144.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 2.5,
"SO": 3.5,
"HR": 0.0,
"BF": 20.0,
"Pitches": 72.0
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.6154,
"ER_per_IP": 0.69231,
"H_per_IP": 1.03846,
"BB_per_IP": 0.57692,
"SO_per_IP": 0.80769,
"HR_per_IP": 0.0
}
},
"season": {
"games": 2,
"totals": {
"IP": 8.2,
"ER": 6.0,
"R": 6.0,
"H": 9.0,
"BB": 5.0,
"SO": 7.0,
"HR": 0.0,
"BF": 40.0,
"Pitches": 144.0
},
"per_game": {
"IP": 4.1,
"ER": 3.0,
"R": 3.0,
"H": 4.5,
"BB": 2.5,
"SO": 3.5,
"HR": 0.0,
"BF": 20.0,
"Pitches": 72.0
},
"rates": {
"ERA": 6.2308,
"WHIP": 1.6154,
"ER_per_IP": 0.69231,
"H_per_IP": 1.03846,
"BB_per_IP": 0.57692,
"SO_per_IP": 0.80769,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.407,
"predicted_H": 4.303,
"predicted_BB": 1.853,
"predicted_SO": 3.927,
"predicted_HR": 0.454,
"predicted_ERA": 4.999,
"predicted_WHIP": 1.4205
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6518,
"form_weight": 0.3482,
"form_reliability": 0.2857,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
},
"applied_metrics": {
"predicted_IP": {
"model": 4.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.407,
"final": 2.1417,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.303,
"final": 2.8019,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.853,
"final": 0.6452,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 3.927,
"final": 2.671,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.454,
"final": 0.1581,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.999,
"final": 4.999,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4205,
"final": 1.4205,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 8.2,
"ER": 6,
"H": 9,
"BB": 5,
"SO": 7,
"HR": 0,
"ERA": 6.230769230769231,
"WHIP": 1.6153846153846154,
"K9": 7.26923076923077,
"HR9": 0.0,
"games_pitched": 2,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 2,
"error_prone": false
},
"games_count": 2,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.0604920127918847,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 2.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.2857,
"prior_weight": 0.7143
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 2,
"predicted_H": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "700363",
"player_name": "AJ Smith-Shawver",
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.3333,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 2.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.3333,
"after": 4.0,
"delta": -0.3333,
"percent_delta": -0.0769,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 132,
"wins": 77,
"losses": 55,
"win_pct": 0.5833,
"runs_scored": 618.0,
"runs_allowed": 507.0,
"run_differential": 111.0,
"run_differential_per_game": 0.8409,
"avg_runs_scored": 4.6818,
"avg_runs_allowed": 3.8409,
"offense_index": 1.0485,
"defense_index": 1.1626,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 2.7,
"avg_runs_allowed": 3.8,
"run_differential": -11.0
},
"available": true,
"quality_score": 0.1394
},
"opponent": {
"team": "LAD",
"games": 132,
"wins": 80,
"losses": 52,
"win_pct": 0.6061,
"runs_scored": 656.0,
"runs_allowed": 506.0,
"run_differential": 150.0,
"run_differential_per_game": 1.1364,
"avg_runs_scored": 4.9697,
"avg_runs_allowed": 3.8333,
"offense_index": 1.113,
"defense_index": 1.1649,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 3.7,
"run_differential": 9.0
},
"available": true,
"quality_score": 0.3002
},
"edges": {
"quality_edge": -0.1608,
"offense_edge": 0.0485,
"opponent_offense_edge": 0.113,
"defense_strength": 0.1626,
"opponent_defense_weakness": -0.1649,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9939,
"run_prevention": 1.0099,
"strikeout": 0.9861
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "700363",
"profile": {
"available": true,
"pitcher_id": "700363",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 19.0,
"k_percent": 17.5,
"bb_percent": 12.5,
"woba": 0.297,
"xwoba": 0.363,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 35.7,
"avg_best_speed": 78.2279,
"avg_hyper_speed": 94.1908,
"whiff_percent": 21.4,
"swing_percent": 48.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4735,
"command_and_miss": -0.6443,
"regression_edge": -1.8857,
"xwoba_edge": -1.4857,
"barrel_edge": 0.0,
"hard_hit_edge": 0.3,
"whiff_edge": -0.5429,
"bb_edge": -0.825,
"pitch_design_score": 0.1195
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700363",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 69,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 91.98260869565216,
"release_spin_rate": 1967.5652173913045,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 69,
"pitch_usage": 0.0,
"release_speed": 91.98260869565216,
"release_spin_rate": 1967.5652173913045,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9826,
"release_spin_rate": 1967.5652,
"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.1195,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8539,
"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.2753,
"sample_weight": 0.45,
"run_prevention_factor": 1.0234,
"strikeout_factor": 0.9787,
"walk_factor": 1.0297,
"homer_factor": 1.0147,
"woba_minus_xwoba": -0.066,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "700363",
"espn_id": 4917640,
"player_name": "AJ Smith-Shawver",
"team": "ATL",
"role": "pitcher",
"espn_rank": 579,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 579,
"gp_value": 2.0,
"gp_rank": 725,
"gs_value": 2.0,
"gs_rank": 265,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 6.2307,
"era_rank": null,
"w_value": 0.0,
"w_rank": 507,
"l_value": 0.0,
"l_rank": 554,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 8.2,
"ip_rank": 614,
"h_value": 9.0,
"h_rank": 618,
"er_value": 6.0,
"er_rank": 600,
"hr_value": 0.0,
"hr_rank": 716,
"bb_value": 5.0,
"bb_rank": 597,
"k_value": 7.0,
"k_rank": 610,
"k_per_9_value": 7.2692304,
"k_per_9_rank": 26.0,
"whip_value": 1.6153,
"whip_rank": null,
"war_value": -0.1,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0105,
"adjusted": 3
},
"predicted_H": {
"original": 4.0,
"factor": 1.0105,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0134,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0066,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9904,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 14,
"Pitches": 56,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 2 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260826_LAD@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_MIL@NYM | away | Dustin May | Dustin May | True | 5.1 | 0.1 | -15 | 2 | 0 | -2 | 4/0 | 0/0 | 5/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.57258064516129,
"WHIP": 1.2983870967741935,
"IP": 124.0,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.167,
"recent_avg_IP": 5.2,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1108,
"sample_weight": 1.0,
"run_prevention_factor": 1.0094,
"strikeout_factor": 0.9869,
"walk_factor": 0.976,
"homer_factor": 1.039,
"regression_flag": "neutral",
"k_percent": 22.6,
"bb_percent": 8.0,
"woba": 0.309,
"xwoba": 0.316,
"barrel_percent": 6.8,
"hard_hit_percent": 44.8,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 283,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669160",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.0,
"ER": 11.0,
"R": 11.0,
"H": 22.0,
"BB": 10.0,
"SO": 23.0,
"HR": 2.0,
"BF": 109.0,
"Pitches": 405.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.2,
"H": 4.4,
"BB": 2.0,
"SO": 4.6,
"HR": 0.4,
"BF": 21.8,
"Pitches": 81.0
},
"rates": {
"ERA": 3.8077,
"WHIP": 1.2308,
"ER_per_IP": 0.42308,
"H_per_IP": 0.84615,
"BB_per_IP": 0.38462,
"SO_per_IP": 0.88462,
"HR_per_IP": 0.07692
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 42.1,
"ER": 29.0,
"R": 29.0,
"H": 47.0,
"BB": 21.0,
"SO": 43.0,
"HR": 4.0,
"BF": 194.0,
"Pitches": 746.0
},
"per_game": {
"IP": 4.1,
"ER": 2.9,
"R": 2.9,
"H": 4.7,
"BB": 2.1,
"SO": 4.3,
"HR": 0.4,
"BF": 19.4,
"Pitches": 74.6
},
"rates": {
"ERA": 6.1654,
"WHIP": 1.6063,
"ER_per_IP": 0.68504,
"H_per_IP": 1.11024,
"BB_per_IP": 0.49606,
"SO_per_IP": 1.01575,
"HR_per_IP": 0.09449
}
},
"season": {
"games": 24,
"totals": {
"IP": 124.0,
"ER": 63.0,
"R": 66.0,
"H": 119.0,
"BB": 42.0,
"SO": 118.0,
"HR": 9.0,
"BF": 523.0,
"Pitches": 1997.0
},
"per_game": {
"IP": 5.1,
"ER": 2.625,
"R": 2.75,
"H": 4.9583,
"BB": 1.75,
"SO": 4.9167,
"HR": 0.375,
"BF": 21.7917,
"Pitches": 83.2083
},
"rates": {
"ERA": 4.5726,
"WHIP": 1.2984,
"ER_per_IP": 0.50806,
"H_per_IP": 0.95968,
"BB_per_IP": 0.33871,
"SO_per_IP": 0.95161,
"HR_per_IP": 0.07258
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.655,
"predicted_H": 4.86,
"predicted_BB": 2.05,
"predicted_SO": 4.762,
"predicted_HR": 0.471,
"predicted_ERA": 4.7377,
"predicted_WHIP": 1.37
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.0,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.655,
"final": 2.378,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.86,
"final": 4.4964,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.05,
"final": 1.1832,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.762,
"final": 4.8626,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.471,
"final": 0.6947,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7377,
"final": 4.7377,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.37,
"final": 1.37,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 42.1,
"ER": 29,
"H": 47,
"BB": 21,
"SO": 43,
"HR": 4,
"ERA": 6.165354330708661,
"WHIP": 1.606299212598425,
"K9": 9.141732283464567,
"HR9": 0.8503937007874015,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.2062234770551454,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669160",
"player_name": "Dustin May",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "MIL",
"games": 132,
"wins": 81,
"losses": 51,
"win_pct": 0.6136,
"runs_scored": 652.0,
"runs_allowed": 492.0,
"run_differential": 160.0,
"run_differential_per_game": 1.2121,
"avg_runs_scored": 4.9394,
"avg_runs_allowed": 3.7273,
"offense_index": 1.1062,
"defense_index": 1.198,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 2.6,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.2809
},
"opponent": {
"team": "NYM",
"games": 132,
"wins": 60,
"losses": 72,
"win_pct": 0.4545,
"runs_scored": 549.0,
"runs_allowed": 588.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2955,
"avg_runs_scored": 4.1591,
"avg_runs_allowed": 4.4545,
"offense_index": 0.9314,
"defense_index": 1.0024,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.0051
},
"edges": {
"quality_edge": 0.286,
"offense_edge": 0.1062,
"opponent_offense_edge": -0.0686,
"defense_strength": 0.198,
"opponent_defense_weakness": -0.0024,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0201,
"run_prevention": 0.9549,
"strikeout": 1.0141
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669160",
"profile": {
"available": true,
"pitcher_id": "669160",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 504.0,
"k_percent": 22.6,
"bb_percent": 8.0,
"woba": 0.309,
"xwoba": 0.316,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 6.8,
"hard_hit_percent": 44.8,
"avg_best_speed": 78.9675,
"avg_hyper_speed": 94.5962,
"whiff_percent": 22.3,
"swing_percent": 47.1
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1621,
"command_and_miss": -0.0464,
"regression_edge": -0.2,
"xwoba_edge": -0.1429,
"barrel_edge": 0.0667,
"hard_hit_edge": -1.0,
"whiff_edge": -0.4143,
"bb_edge": 0.3,
"pitch_design_score": 0.1507
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669160",
"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": 92.53855643863997,
"release_spin_rate": 2530.2508026722626,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.53855643863997,
"release_spin_rate": 2530.2508026722626,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5386,
"release_spin_rate": 2530.2508,
"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.1507,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0763,
"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.1108,
"sample_weight": 1.0,
"run_prevention_factor": 1.0094,
"strikeout_factor": 0.9869,
"walk_factor": 0.976,
"homer_factor": 1.039,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669160",
"espn_id": 40937,
"player_name": "Dustin May",
"team": "MIL",
"role": "pitcher",
"espn_rank": 283,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 283,
"gp_value": 24.0,
"gp_rank": 299,
"gs_value": 24.0,
"gs_rank": 48,
"qs_value": 12.0,
"qs_rank": 27,
"era_value": 4.5725,
"era_rank": null,
"w_value": 6.0,
"w_rank": 93,
"l_value": 8.0,
"l_rank": 38,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 124.0,
"ip_rank": 74,
"h_value": 119.0,
"h_rank": 63,
"er_value": 63.0,
"er_rank": 32,
"hr_value": 9.0,
"hr_rank": 163,
"bb_value": 42.0,
"bb_rank": 57,
"k_value": 118.0,
"k_rank": 55,
"k_per_9_value": 8.564516,
"k_per_9_rank": 20.0,
"whip_value": 1.2983,
"whip_rank": null,
"war_value": 0.35,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0094,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0094,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.976,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.039,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9869,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -15 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260826_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_MIL@NYM | home | Robert Stock | Robert Stock | True | 4.0 | 4.0 | 0 | 3 | 7 | 4 | 3/10 | 3/2 | 2/2 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 5.3999999999999995,
"WHIP": 1.68,
"IP": 16.2,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.167,
"recent_avg_IP": 4.167,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0905,
"sample_weight": 0.45,
"run_prevention_factor": 1.0077,
"strikeout_factor": 1.008,
"walk_factor": 1.0396,
"homer_factor": 1.0066,
"regression_flag": "neutral",
"k_percent": 23.5,
"bb_percent": 13.6,
"woba": 0.35,
"xwoba": 0.331,
"barrel_percent": 10.4,
"hard_hit_percent": 27.1,
"whiff_percent": 26.8
},
"espn_rank": {
"rank": 552,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "476594",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 11.0,
"H": 17.0,
"BB": 11.0,
"SO": 19.0,
"HR": 1.0,
"BF": 81.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.75,
"H": 4.25,
"BB": 2.75,
"SO": 4.75,
"HR": 0.25,
"BF": 20.25,
"Pitches": 79.25
},
"rates": {
"ERA": 5.4,
"WHIP": 1.68,
"ER_per_IP": 0.6,
"H_per_IP": 1.02,
"BB_per_IP": 0.66,
"SO_per_IP": 1.14,
"HR_per_IP": 0.06
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 11.0,
"H": 17.0,
"BB": 11.0,
"SO": 19.0,
"HR": 1.0,
"BF": 81.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.75,
"H": 4.25,
"BB": 2.75,
"SO": 4.75,
"HR": 0.25,
"BF": 20.25,
"Pitches": 79.25
},
"rates": {
"ERA": 5.4,
"WHIP": 1.68,
"ER_per_IP": 0.6,
"H_per_IP": 1.02,
"BB_per_IP": 0.66,
"SO_per_IP": 1.14,
"HR_per_IP": 0.06
}
},
"season": {
"games": 4,
"totals": {
"IP": 16.2,
"ER": 10.0,
"R": 11.0,
"H": 17.0,
"BB": 11.0,
"SO": 19.0,
"HR": 1.0,
"BF": 81.0,
"Pitches": 317.0
},
"per_game": {
"IP": 4.0,
"ER": 2.5,
"R": 2.75,
"H": 4.25,
"BB": 2.75,
"SO": 4.75,
"HR": 0.25,
"BF": 20.25,
"Pitches": 79.25
},
"rates": {
"ERA": 5.4,
"WHIP": 1.68,
"ER_per_IP": 0.6,
"H_per_IP": 1.02,
"BB_per_IP": 0.66,
"SO_per_IP": 1.14,
"HR_per_IP": 0.06
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.482,
"predicted_H": 4.532,
"predicted_BB": 2.267,
"predicted_SO": 4.701,
"predicted_HR": 0.493,
"predicted_ERA": 4.9035,
"predicted_WHIP": 1.4925
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5847,
"form_weight": 0.4153,
"form_reliability": 0.4444,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 4.2,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.482,
"final": 2.7849,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.532,
"final": 3.0514,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 2.267,
"final": 2.6956,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 4.701,
"final": 3.1216,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.493,
"final": 0.2047,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9035,
"final": 4.9035,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4925,
"final": 1.4925,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "insufficient_data"
},
"pitching": {
"IP": 16.2,
"ER": 10,
"H": 17,
"BB": 11,
"SO": 19,
"HR": 1,
"ERA": 5.4,
"WHIP": 1.6800000000000002,
"K9": 10.260000000000002,
"HR9": 0.54,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-08-19T00:00:00"
},
"recent_form_boost": 1.066358638354973,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_BB": 3.0,
"predicted_SO": 2.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 4.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.4444,
"prior_weight": 0.5556
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3,
"predicted_H": 2,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "476594",
"player_name": "Robert Stock",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 4.0,
"predicted_R": 3.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.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": 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": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.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": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 132,
"wins": 60,
"losses": 72,
"win_pct": 0.4545,
"runs_scored": 549.0,
"runs_allowed": 588.0,
"run_differential": -39.0,
"run_differential_per_game": -0.2955,
"avg_runs_scored": 4.1591,
"avg_runs_allowed": 4.4545,
"offense_index": 0.9314,
"defense_index": 1.0024,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.1,
"run_differential": 8.0
},
"available": true,
"quality_score": -0.0051
},
"opponent": {
"team": "MIL",
"games": 132,
"wins": 81,
"losses": 51,
"win_pct": 0.6136,
"runs_scored": 652.0,
"runs_allowed": 492.0,
"run_differential": 160.0,
"run_differential_per_game": 1.2121,
"avg_runs_scored": 4.9394,
"avg_runs_allowed": 3.7273,
"offense_index": 1.1062,
"defense_index": 1.198,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 2.6,
"run_differential": 29.0
},
"available": true,
"quality_score": 0.2809
},
"edges": {
"quality_edge": -0.286,
"offense_edge": -0.0686,
"opponent_offense_edge": 0.1062,
"defense_strength": 0.0024,
"opponent_defense_weakness": -0.198,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9844,
"run_prevention": 1.0311,
"strikeout": 0.9829
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "476594",
"profile": {
"available": true,
"pitcher_id": "476594",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 62.0,
"k_percent": 23.5,
"bb_percent": 13.6,
"woba": 0.35,
"xwoba": 0.331,
"sweet_spot_percent": 43.8,
"barrel_batted_rate": 10.4,
"hard_hit_percent": 27.1,
"avg_best_speed": 76.0665,
"avg_hyper_speed": 93.0669,
"whiff_percent": 26.8,
"swing_percent": 48.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4457,
"command_and_miss": -0.0436,
"regression_edge": 0.5429,
"xwoba_edge": -0.5714,
"barrel_edge": -0.7333,
"hard_hit_edge": 1.5286,
"whiff_edge": 0.2286,
"bb_edge": -1.1,
"pitch_design_score": 0.0698
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "476594",
"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": 91.09359126984127,
"release_spin_rate": 2240.5430555555554,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 91.09359126984127,
"release_spin_rate": 2240.5430555555554,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0936,
"release_spin_rate": 2240.5431,
"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.0698,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4983,
"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.0905,
"sample_weight": 0.45,
"run_prevention_factor": 1.0077,
"strikeout_factor": 1.008,
"walk_factor": 1.0396,
"homer_factor": 1.0066,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "476594",
"espn_id": 30577,
"player_name": "Robert Stock",
"team": "NYM",
"role": "pitcher",
"espn_rank": 552,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 552,
"gp_value": 4.0,
"gp_rank": 630,
"gs_value": 4.0,
"gs_rank": 218,
"qs_value": 0.0,
"qs_rank": 203,
"era_value": 5.4,
"era_rank": null,
"w_value": 0.0,
"w_rank": 507,
"l_value": 2.0,
"l_rank": 301,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 16.2,
"ip_rank": 521,
"h_value": 17.0,
"h_rank": 515,
"er_value": 10.0,
"er_rank": 496,
"hr_value": 1.0,
"hr_rank": 584,
"bb_value": 11.0,
"bb_rank": 431,
"k_value": 19.0,
"k_rank": 475,
"k_per_9_value": 10.26,
"k_per_9_rank": 24.0,
"whip_value": 1.68,
"whip_rank": null,
"war_value": -0.08,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0035,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0035,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.0178,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.003,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0036,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.0,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 2,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 18,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 4 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 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 7",
"detail": "Actual minus predicted hits was +7."
}
],
"provenance": {
"prediction": "output/games/20260826_MIL@NYM.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_MIN@OAK | away | Connor Prielipp | Connor Prielipp | True | 5.0 | 5.1 | 1 | 3 | 3 | 0 | 1/6 | 5/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.572953736654804,
"WHIP": 1.3985765124555158,
"IP": 93.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.204,
"recent_avg_IP": 5.4,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1244,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 1.0091,
"walk_factor": 1.002,
"homer_factor": 1.0457,
"regression_flag": "neutral",
"k_percent": 24.8,
"bb_percent": 9.3,
"woba": 0.336,
"xwoba": 0.319,
"barrel_percent": 8.0,
"hard_hit_percent": 41.8,
"whiff_percent": 24.0
},
"espn_rank": {
"rank": 775,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687570",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 21.0,
"R": 21.0,
"H": 27.0,
"BB": 13.0,
"SO": 30.0,
"HR": 5.0,
"BF": 114.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.1,
"ER": 4.2,
"R": 4.2,
"H": 5.4,
"BB": 2.6,
"SO": 6.0,
"HR": 1.0,
"BF": 22.8,
"Pitches": 89.2
},
"rates": {
"ERA": 7.0,
"WHIP": 1.4815,
"ER_per_IP": 0.77778,
"H_per_IP": 1.0,
"BB_per_IP": 0.48148,
"SO_per_IP": 1.11111,
"HR_per_IP": 0.18519
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.1,
"ER": 35.0,
"R": 38.0,
"H": 57.0,
"BB": 21.0,
"SO": 59.0,
"HR": 9.0,
"BF": 235.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.1,
"ER": 3.5,
"R": 3.8,
"H": 5.7,
"BB": 2.1,
"SO": 5.9,
"HR": 0.9,
"BF": 23.5,
"Pitches": 89.4
},
"rates": {
"ERA": 5.7975,
"WHIP": 1.4356,
"ER_per_IP": 0.64417,
"H_per_IP": 1.04908,
"BB_per_IP": 0.3865,
"SO_per_IP": 1.08589,
"HR_per_IP": 0.16564
}
},
"season": {
"games": 18,
"totals": {
"IP": 93.2,
"ER": 58.0,
"R": 66.0,
"H": 93.0,
"BB": 38.0,
"SO": 101.0,
"HR": 13.0,
"BF": 408.0,
"Pitches": 1602.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2222,
"R": 3.6667,
"H": 5.1667,
"BB": 2.1111,
"SO": 5.6111,
"HR": 0.7222,
"BF": 22.6667,
"Pitches": 89.0
},
"rates": {
"ERA": 5.573,
"WHIP": 1.3986,
"ER_per_IP": 0.61922,
"H_per_IP": 0.99288,
"BB_per_IP": 0.40569,
"SO_per_IP": 1.07829,
"HR_per_IP": 0.13879
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.499,
"predicted_H": 5.37,
"predicted_BB": 2.234,
"predicted_SO": 5.67,
"predicted_HR": 0.876,
"predicted_ERA": 5.9051,
"predicted_WHIP": 1.4257
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4419,
"form_weight": 0.5581,
"form_reliability": 0.7826,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7826,
"prior_weight": 0.2174
},
"applied_metrics": {
"predicted_IP": {
"model": 5.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 3.499,
"final": 3.2785,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 5.37,
"final": 3.4391,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 5.0,
"form": 2.234,
"final": 3.4562,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.67,
"final": 5.8158,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.876,
"final": 0.4889,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9051,
"final": 5.9051,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4257,
"final": 1.4257,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.1,
"ER": 35,
"H": 57,
"BB": 21,
"SO": 59,
"HR": 9,
"ERA": 5.7975460122699385,
"WHIP": 1.4355828220858895,
"K9": 9.773006134969325,
"HR9": 1.4907975460122698,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.1605771314679758,
"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": 1.0,
"predicted_BB": 5.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": "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": 1,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687570",
"player_name": "Connor Prielipp",
"position": "Starter",
"team": "MIN",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.3333,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 5.0,
"predicted_ER": 3.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.0,
"delta": -0.3333,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIN",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 611.0,
"runs_allowed": 664.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3985,
"avg_runs_scored": 4.594,
"avg_runs_allowed": 4.9925,
"offense_index": 1.027,
"defense_index": 0.896,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.4,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1
},
"opponent": {
"team": "OAK",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 578.0,
"runs_allowed": 766.0,
"run_differential": -188.0,
"run_differential_per_game": -1.4135,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 5.7594,
"offense_index": 0.9715,
"defense_index": 0.7767,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.3014
},
"edges": {
"quality_edge": 0.2014,
"offense_edge": 0.027,
"opponent_offense_edge": -0.0285,
"defense_strength": -0.104,
"opponent_defense_weakness": 0.2233,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9958,
"strikeout": 1.0083
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687570",
"profile": {
"available": true,
"pitcher_id": "687570",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 378.0,
"k_percent": 24.8,
"bb_percent": 9.3,
"woba": 0.336,
"xwoba": 0.319,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 41.8,
"avg_best_speed": 80.6216,
"avg_hyper_speed": 94.4011,
"whiff_percent": 24.0,
"swing_percent": 47.0
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3629,
"command_and_miss": 0.115,
"regression_edge": 0.4857,
"xwoba_edge": -0.2286,
"barrel_edge": -0.2,
"hard_hit_edge": -0.5714,
"whiff_edge": -0.1714,
"bb_edge": -0.025,
"pitch_design_score": 0.0049
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687570",
"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": 89.93601914851176,
"release_spin_rate": 2594.3351532090487,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.93601914851176,
"release_spin_rate": 2594.3351532090487,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.936,
"release_spin_rate": 2594.3352,
"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.0049,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0353,
"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.1244,
"sample_weight": 1.0,
"run_prevention_factor": 1.0106,
"strikeout_factor": 1.0091,
"walk_factor": 1.002,
"homer_factor": 1.0457,
"woba_minus_xwoba": 0.017,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "687570",
"espn_id": 4620001,
"player_name": "Connor Prielipp",
"team": "MIN",
"role": "pitcher",
"espn_rank": 775,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 775,
"gp_value": 18.0,
"gp_rank": 387,
"gs_value": 18.0,
"gs_rank": 103,
"qs_value": 3.0,
"qs_rank": 133,
"era_value": 5.5729,
"era_rank": null,
"w_value": 3.0,
"w_rank": 226,
"l_value": 7.0,
"l_rank": 69,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 93.2,
"ip_rank": 119,
"h_value": 93.0,
"h_rank": 109,
"er_value": 58.0,
"er_rank": 54,
"hr_value": 13.0,
"hr_rank": 107,
"bb_value": 38.0,
"bb_rank": 76,
"k_value": 101.0,
"k_rank": 86,
"k_per_9_value": 9.704626,
"k_per_9_rank": 19.0,
"whip_value": 1.3985,
"whip_rank": null,
"war_value": -0.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 4.0,
"factor": 1.0106,
"adjusted": 4
},
"predicted_H": {
"original": 5.0,
"factor": 1.0106,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.002,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0457,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0091,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 1,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 5,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"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 +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 -4."
}
],
"provenance": {
"prediction": "output/games/20260826_MIN@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_MIN@OAK | home | J.T. Ginn | J.T. Ginn | True | 5.2 | 6.0 | 1 | 3 | 4 | 1 | 5/6 | 4/2 | 4/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.604534005037783,
"WHIP": 1.2317380352644836,
"IP": 132.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.449,
"recent_avg_IP": 5.867,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1582,
"sample_weight": 1.0,
"run_prevention_factor": 0.9866,
"strikeout_factor": 1.0057,
"walk_factor": 1.014,
"homer_factor": 0.9501,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 9.9,
"woba": 0.298,
"xwoba": 0.306,
"barrel_percent": 5.4,
"hard_hit_percent": 35.1,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 21,
"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": "669372",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 11.0,
"R": 13.0,
"H": 25.0,
"BB": 9.0,
"SO": 25.0,
"HR": 1.0,
"BF": 121.0,
"Pitches": 456.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2,
"R": 2.6,
"H": 5.0,
"BB": 1.8,
"SO": 5.0,
"HR": 0.2,
"BF": 24.2,
"Pitches": 91.2
},
"rates": {
"ERA": 3.375,
"WHIP": 1.1591,
"ER_per_IP": 0.375,
"H_per_IP": 0.85227,
"BB_per_IP": 0.30682,
"SO_per_IP": 0.85227,
"HR_per_IP": 0.03409
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.0,
"ER": 28.0,
"R": 31.0,
"H": 50.0,
"BB": 23.0,
"SO": 50.0,
"HR": 6.0,
"BF": 239.0,
"Pitches": 894.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.1,
"H": 5.0,
"BB": 2.3,
"SO": 5.0,
"HR": 0.6,
"BF": 23.9,
"Pitches": 89.4
},
"rates": {
"ERA": 4.5818,
"WHIP": 1.3273,
"ER_per_IP": 0.50909,
"H_per_IP": 0.90909,
"BB_per_IP": 0.41818,
"SO_per_IP": 0.90909,
"HR_per_IP": 0.10909
}
},
"season": {
"games": 26,
"totals": {
"IP": 132.1,
"ER": 53.0,
"R": 59.0,
"H": 108.0,
"BB": 55.0,
"SO": 118.0,
"HR": 14.0,
"BF": 555.0,
"Pitches": 2102.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0385,
"R": 2.2692,
"H": 4.1538,
"BB": 2.1154,
"SO": 4.5385,
"HR": 0.5385,
"BF": 21.3462,
"Pitches": 80.8462
},
"rates": {
"ERA": 3.6045,
"WHIP": 1.2317,
"ER_per_IP": 0.4005,
"H_per_IP": 0.81612,
"BB_per_IP": 0.41562,
"SO_per_IP": 0.89169,
"HR_per_IP": 0.10579
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.45,
"predicted_H": 4.928,
"predicted_BB": 2.052,
"predicted_SO": 4.972,
"predicted_HR": 0.482,
"predicted_ERA": 3.9502,
"predicted_WHIP": 1.2502
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.45,
"final": 2.2618,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.928,
"final": 4.9581,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.052,
"final": 2.8666,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.972,
"final": 4.1474,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.482,
"final": 0.6986,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9502,
"final": 3.9502,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2502,
"final": 1.2502,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.0,
"ER": 28,
"H": 50,
"BB": 23,
"SO": 50,
"HR": 6,
"ERA": 4.581818181818182,
"WHIP": 1.3272727272727274,
"K9": 8.181818181818182,
"HR9": 0.9818181818181818,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.021099998171824,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 4.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669372",
"player_name": "J.T. Ginn",
"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": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "OAK",
"games": 133,
"wins": 52,
"losses": 81,
"win_pct": 0.391,
"runs_scored": 578.0,
"runs_allowed": 766.0,
"run_differential": -188.0,
"run_differential_per_game": -1.4135,
"avg_runs_scored": 4.3459,
"avg_runs_allowed": 5.7594,
"offense_index": 0.9715,
"defense_index": 0.7767,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.3,
"avg_runs_allowed": 5.4,
"run_differential": -11.0
},
"available": true,
"quality_score": -0.3014
},
"opponent": {
"team": "MIN",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 611.0,
"runs_allowed": 664.0,
"run_differential": -53.0,
"run_differential_per_game": -0.3985,
"avg_runs_scored": 4.594,
"avg_runs_allowed": 4.9925,
"offense_index": 1.027,
"defense_index": 0.896,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 5.4,
"run_differential": -15.0
},
"available": true,
"quality_score": -0.1
},
"edges": {
"quality_edge": -0.2014,
"offense_edge": -0.0285,
"opponent_offense_edge": 0.027,
"defense_strength": -0.2233,
"opponent_defense_weakness": 0.104,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9842,
"run_prevention": 1.0367,
"strikeout": 0.9918
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669372",
"profile": {
"available": true,
"pitcher_id": "669372",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 529.0,
"k_percent": 21.3,
"bb_percent": 9.9,
"woba": 0.298,
"xwoba": 0.306,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 5.4,
"hard_hit_percent": 35.1,
"avg_best_speed": 75.7968,
"avg_hyper_speed": 93.5149,
"whiff_percent": 26.9,
"swing_percent": 45.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3142,
"command_and_miss": 0.005,
"regression_edge": -0.2286,
"xwoba_edge": 0.1429,
"barrel_edge": 0.3778,
"hard_hit_edge": 0.3857,
"whiff_edge": 0.2429,
"bb_edge": -0.175,
"pitch_design_score": 0.0481
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669372",
"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": 90.70700771114096,
"release_spin_rate": 1973.3837422021236,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 90.70700771114096,
"release_spin_rate": 1973.3837422021236,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.707,
"release_spin_rate": 1973.3837,
"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.0481,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3437,
"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.1582,
"sample_weight": 1.0,
"run_prevention_factor": 0.9866,
"strikeout_factor": 1.0057,
"walk_factor": 1.014,
"homer_factor": 0.9501,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669372",
"espn_id": 4414002,
"player_name": "J.T. Ginn",
"team": "ATH",
"role": "pitcher",
"espn_rank": 21,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 21,
"gp_value": 26.0,
"gp_rank": 242,
"gs_value": 23.0,
"gs_rank": 62,
"qs_value": 11.0,
"qs_rank": 37,
"era_value": 3.6045,
"era_rank": null,
"w_value": 8.0,
"w_rank": 47,
"l_value": 8.0,
"l_rank": 38,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 132.1,
"ip_rank": 55,
"h_value": 108.0,
"h_rank": 85,
"er_value": 53.0,
"er_rank": 74,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 55.0,
"bb_rank": 15,
"k_value": 118.0,
"k_rank": 55,
"k_per_9_value": 8.025188,
"k_per_9_rank": 26.0,
"whip_value": 1.2317,
"whip_rank": null,
"war_value": 3.29,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9866,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9866,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.014,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9501,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0057,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 4,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 114,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260826_MIN@OAK.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_PHI@SEA | away | Jesús Luzardo | Jesús Luzardo | True | 6.1 | 7.0 | 2 | 4 | 0 | -4 | 4/1 | 3/3 | 6/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.3461538461538463,
"WHIP": 1.1538461538461537,
"IP": 156.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7536,
"sample_weight": 1.0,
"run_prevention_factor": 0.9359,
"strikeout_factor": 1.0834,
"walk_factor": 0.962,
"homer_factor": 0.9153,
"regression_flag": "neutral",
"k_percent": 30.1,
"bb_percent": 7.3,
"woba": 0.288,
"xwoba": 0.264,
"barrel_percent": 6.4,
"hard_hit_percent": 32.2,
"whiff_percent": 31.7
},
"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": "666200",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.2,
"ER": 13.0,
"R": 13.0,
"H": 27.0,
"BB": 9.0,
"SO": 42.0,
"HR": 3.0,
"BF": 136.0,
"Pitches": 517.0
},
"per_game": {
"IP": 6.2,
"ER": 2.6,
"R": 2.6,
"H": 5.4,
"BB": 1.8,
"SO": 8.4,
"HR": 0.6,
"BF": 27.2,
"Pitches": 103.4
},
"rates": {
"ERA": 3.4752,
"WHIP": 1.0693,
"ER_per_IP": 0.38614,
"H_per_IP": 0.80198,
"BB_per_IP": 0.26733,
"SO_per_IP": 1.24752,
"HR_per_IP": 0.08911
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 63.2,
"ER": 17.0,
"R": 17.0,
"H": 43.0,
"BB": 17.0,
"SO": 84.0,
"HR": 5.0,
"BF": 253.0,
"Pitches": 999.0
},
"per_game": {
"IP": 6.1,
"ER": 1.7,
"R": 1.7,
"H": 4.3,
"BB": 1.7,
"SO": 8.4,
"HR": 0.5,
"BF": 25.3,
"Pitches": 99.9
},
"rates": {
"ERA": 2.4031,
"WHIP": 0.9424,
"ER_per_IP": 0.26702,
"H_per_IP": 0.67539,
"BB_per_IP": 0.26702,
"SO_per_IP": 1.31937,
"HR_per_IP": 0.07853
}
},
"season": {
"games": 26,
"totals": {
"IP": 156.0,
"ER": 58.0,
"R": 64.0,
"H": 133.0,
"BB": 47.0,
"SO": 194.0,
"HR": 14.0,
"BF": 645.0,
"Pitches": 2548.0
},
"per_game": {
"IP": 6.0,
"ER": 2.2308,
"R": 2.4615,
"H": 5.1154,
"BB": 1.8077,
"SO": 7.4615,
"HR": 0.5385,
"BF": 24.8077,
"Pitches": 98.0
},
"rates": {
"ERA": 3.3462,
"WHIP": 1.1538,
"ER_per_IP": 0.37179,
"H_per_IP": 0.85256,
"BB_per_IP": 0.30128,
"SO_per_IP": 1.24359,
"HR_per_IP": 0.08974
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 2.352,
"predicted_H": 5.13,
"predicted_BB": 1.851,
"predicted_SO": 7.807,
"predicted_HR": 0.611,
"predicted_ERA": 3.3052,
"predicted_WHIP": 1.0903
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.352,
"final": 3.0411,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.13,
"final": 4.6575,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.851,
"final": 2.3315,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 7.807,
"final": 6.6333,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.611,
"final": 0.3555,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3052,
"final": 3.3052,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0903,
"final": 1.0903,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 63.2,
"ER": 17,
"H": 43,
"BB": 17,
"SO": 84,
"HR": 5,
"ERA": 2.4031413612565444,
"WHIP": 0.9424083769633507,
"K9": 11.87434554973822,
"HR9": 0.706806282722513,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.7663772471009054,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "666200",
"player_name": "Jes\u00fas Luzardo",
"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": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.1,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.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": 133,
"wins": 73,
"losses": 60,
"win_pct": 0.5489,
"runs_scored": 602.0,
"runs_allowed": 585.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1278,
"avg_runs_scored": 4.5263,
"avg_runs_allowed": 4.3985,
"offense_index": 1.0101,
"defense_index": 1.0188,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1623
},
"opponent": {
"team": "SEA",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 526.0,
"runs_allowed": 577.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3835,
"avg_runs_scored": 3.9549,
"avg_runs_allowed": 4.3383,
"offense_index": 0.8826,
"defense_index": 1.0329,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 7.2,
"run_differential": -22.0
},
"available": true,
"quality_score": 0.007
},
"edges": {
"quality_edge": 0.1553,
"offense_edge": 0.0101,
"opponent_offense_edge": -0.1174,
"defense_strength": 0.0188,
"opponent_defense_weakness": -0.0329,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.9716,
"strikeout": 1.0141
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "666200",
"profile": {
"available": true,
"pitcher_id": "666200",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 616.0,
"k_percent": 30.1,
"bb_percent": 7.3,
"woba": 0.288,
"xwoba": 0.264,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 32.2,
"avg_best_speed": 76.4225,
"avg_hyper_speed": 93.0659,
"whiff_percent": 31.7,
"swing_percent": 46.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7808,
"command_and_miss": 0.9407,
"regression_edge": 0.6857,
"xwoba_edge": 1.3429,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.8,
"whiff_edge": 0.9286,
"bb_edge": 0.475,
"pitch_design_score": 0.0403
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 102,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 102,
"pitch_usage": 0.0,
"release_speed": 90.56733124144404,
"release_spin_rate": 2203.6617933348475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 102,
"pitch_usage": 0.0,
"release_speed": 90.56733124144404,
"release_spin_rate": 2203.6617933348475,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5673,
"release_spin_rate": 2203.6618,
"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.0403,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2878,
"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.7536,
"sample_weight": 1.0,
"run_prevention_factor": 0.9359,
"strikeout_factor": 1.0834,
"walk_factor": 0.962,
"homer_factor": 0.9153,
"woba_minus_xwoba": 0.024,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666200",
"espn_id": 39667,
"player_name": "Jesus Luzardo",
"team": "PHI",
"role": "pitcher",
"espn_rank": 8,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 8,
"gp_value": 26.0,
"gp_rank": 242,
"gs_value": 26.0,
"gs_rank": 15,
"qs_value": 14.0,
"qs_rank": 15,
"era_value": 3.3461,
"era_rank": 20.0,
"w_value": 11.0,
"w_rank": 18,
"l_value": 5.0,
"l_rank": 123,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 156.0,
"ip_rank": 6,
"h_value": 133.0,
"h_rank": 24,
"er_value": 58.0,
"er_rank": 54,
"hr_value": 14.0,
"hr_rank": 85,
"bb_value": 47.0,
"bb_rank": 35,
"k_value": 194.0,
"k_rank": 4,
"k_per_9_value": 11.192307,
"k_per_9_rank": 18.0,
"whip_value": 1.1538,
"whip_rank": 25.0,
"war_value": 4.74,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9359,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9359,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9153,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0834,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 4,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 3,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 116,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "critical",
"title": "Earned-run miss of 4",
"detail": "Actual minus predicted earned runs was -4; this is the primary run-prevention error."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260826_PHI@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_PHI@SEA | home | Bryan Woo | Bryan Woo | True | 5.2 | 4.0 | -5 | 4 | 6 | 2 | 3/5 | 1/1 | 6/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.098795180722892,
"WHIP": 1.0843373493975903,
"IP": 138.1,
"games_started": null,
"games_pitched": 24,
"role_avg_IP": 5.764,
"recent_avg_IP": 5.6,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1942,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0109,
"walk_factor": 0.92,
"homer_factor": 1.0124,
"regression_flag": "neutral",
"k_percent": 24.3,
"bb_percent": 5.2,
"woba": 0.284,
"xwoba": 0.293,
"barrel_percent": 6.9,
"hard_hit_percent": 43.3,
"whiff_percent": 24.8
},
"espn_rank": {
"rank": 111,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693433",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 24,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.0,
"ER": 12.0,
"R": 12.0,
"H": 23.0,
"BB": 7.0,
"SO": 28.0,
"HR": 3.0,
"BF": 113.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.4,
"H": 4.6,
"BB": 1.4,
"SO": 5.6,
"HR": 0.6,
"BF": 22.6,
"Pitches": 88.8
},
"rates": {
"ERA": 3.8571,
"WHIP": 1.0714,
"ER_per_IP": 0.42857,
"H_per_IP": 0.82143,
"BB_per_IP": 0.25,
"SO_per_IP": 1.0,
"HR_per_IP": 0.10714
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 24.0,
"R": 26.0,
"H": 51.0,
"BB": 14.0,
"SO": 58.0,
"HR": 6.0,
"BF": 234.0,
"Pitches": 910.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 2.6,
"H": 5.1,
"BB": 1.4,
"SO": 5.8,
"HR": 0.6,
"BF": 23.4,
"Pitches": 91.0
},
"rates": {
"ERA": 3.8343,
"WHIP": 1.1538,
"ER_per_IP": 0.42604,
"H_per_IP": 0.90533,
"BB_per_IP": 0.24852,
"SO_per_IP": 1.02959,
"HR_per_IP": 0.10651
}
},
"season": {
"games": 24,
"totals": {
"IP": 138.1,
"ER": 63.0,
"R": 67.0,
"H": 121.0,
"BB": 29.0,
"SO": 137.0,
"HR": 15.0,
"BF": 563.0,
"Pitches": 2118.0
},
"per_game": {
"IP": 5.2,
"ER": 2.625,
"R": 2.7917,
"H": 5.0417,
"BB": 1.2083,
"SO": 5.7083,
"HR": 0.625,
"BF": 23.4583,
"Pitches": 88.25
},
"rates": {
"ERA": 4.0988,
"WHIP": 1.0843,
"ER_per_IP": 0.45542,
"H_per_IP": 0.8747,
"BB_per_IP": 0.20964,
"SO_per_IP": 0.99036,
"HR_per_IP": 0.10843
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.52,
"predicted_H": 4.992,
"predicted_BB": 1.491,
"predicted_SO": 5.653,
"predicted_HR": 0.646,
"predicted_ERA": 4.0024,
"predicted_WHIP": 1.1441
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4228,
"form_weight": 0.5772,
"form_reliability": 0.8276,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.52,
"final": 3.1458,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.992,
"final": 4.1497,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.491,
"final": 1.2834,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 5.653,
"final": 3.6855,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.646,
"final": 0.7957,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0024,
"final": 4.0024,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1441,
"final": 1.1441,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 56.1,
"ER": 24,
"H": 51,
"BB": 14,
"SO": 58,
"HR": 6,
"ERA": 3.8343195266272194,
"WHIP": 1.153846153846154,
"K9": 9.266272189349113,
"HR9": 0.9585798816568049,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-16T00:00:00"
},
"recent_form_boost": 0.9326707351271764,
"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": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 1.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 24.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8276,
"prior_weight": 0.1724
}
},
{
"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": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693433",
"player_name": "Bryan Woo",
"position": "Starter",
"team": "SEA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 1.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": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 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": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"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": 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.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 6.0,
"delta": 5.0,
"percent_delta": 5.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 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": "SEA",
"games": 133,
"wins": 64,
"losses": 69,
"win_pct": 0.4812,
"runs_scored": 526.0,
"runs_allowed": 577.0,
"run_differential": -51.0,
"run_differential_per_game": -0.3835,
"avg_runs_scored": 3.9549,
"avg_runs_allowed": 4.3383,
"offense_index": 0.8826,
"defense_index": 1.0329,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 7.2,
"run_differential": -22.0
},
"available": true,
"quality_score": 0.007
},
"opponent": {
"team": "PHI",
"games": 133,
"wins": 73,
"losses": 60,
"win_pct": 0.5489,
"runs_scored": 602.0,
"runs_allowed": 585.0,
"run_differential": 17.0,
"run_differential_per_game": 0.1278,
"avg_runs_scored": 4.5263,
"avg_runs_allowed": 4.3985,
"offense_index": 1.0101,
"defense_index": 1.0188,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.0,
"avg_runs_allowed": 4.2,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1623
},
"edges": {
"quality_edge": -0.1553,
"offense_edge": -0.1174,
"opponent_offense_edge": 0.0101,
"defense_strength": 0.0329,
"opponent_defense_weakness": -0.0188,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9944,
"run_prevention": 1.0061,
"strikeout": 0.9945
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693433",
"profile": {
"available": true,
"pitcher_id": "693433",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 539.0,
"k_percent": 24.3,
"bb_percent": 5.2,
"woba": 0.284,
"xwoba": 0.293,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 6.9,
"hard_hit_percent": 43.3,
"avg_best_speed": 79.2824,
"avg_hyper_speed": 94.4448,
"whiff_percent": 24.8,
"swing_percent": 53.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2179,
"command_and_miss": 0.3279,
"regression_edge": -0.2571,
"xwoba_edge": 0.5143,
"barrel_edge": 0.0444,
"hard_hit_edge": -0.7857,
"whiff_edge": -0.0571,
"bb_edge": 1.0,
"pitch_design_score": 0.1579
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693433",
"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": 92.66728933036258,
"release_spin_rate": 2270.81627128077,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.66728933036258,
"release_spin_rate": 2270.81627128077,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6673,
"release_spin_rate": 2270.8163,
"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.1579,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1278,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.1942,
"sample_weight": 1.0,
"run_prevention_factor": 0.9835,
"strikeout_factor": 1.0109,
"walk_factor": 0.92,
"homer_factor": 1.0124,
"woba_minus_xwoba": -0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "693433",
"espn_id": 4629089,
"player_name": "Bryan Woo",
"team": "SEA",
"role": "pitcher",
"espn_rank": 111,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 111,
"gp_value": 24.0,
"gp_rank": 299,
"gs_value": 24.0,
"gs_rank": 48,
"qs_value": 13.0,
"qs_rank": 21,
"era_value": 4.0987,
"era_rank": 43.0,
"w_value": 9.0,
"w_rank": 29,
"l_value": 8.0,
"l_rank": 38,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 138.1,
"ip_rank": 42,
"h_value": 121.0,
"h_rank": 57,
"er_value": 63.0,
"er_rank": 32,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 29.0,
"bb_rank": 153,
"k_value": 137.0,
"k_rank": 32,
"k_per_9_value": 8.913253,
"k_per_9_rank": 20.0,
"whip_value": 1.0843,
"whip_rank": 12.0,
"war_value": 1.47,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9835,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9835,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0124,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0109,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 96,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
}
],
"provenance": {
"prediction": "output/games/20260826_PHI@SEA.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_PIT@SD | away | Bubba Chandler | Bubba Chandler | True | 5.0 | 5.2 | 2 | 2 | 1 | -1 | 5/4 | 1/2 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.38031914893617,
"WHIP": 1.372340425531915,
"IP": 125.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.0,
"recent_avg_IP": 4.933,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0342,
"sample_weight": 1.0,
"run_prevention_factor": 1.0029,
"strikeout_factor": 0.98,
"walk_factor": 1.058,
"homer_factor": 0.977,
"regression_flag": "neutral",
"k_percent": 20.8,
"bb_percent": 12.1,
"woba": 0.307,
"xwoba": 0.312,
"barrel_percent": 5.6,
"hard_hit_percent": 38.3,
"whiff_percent": 22.9
},
"espn_rank": {
"rank": 144,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696149",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 11.0,
"R": 14.0,
"H": 22.0,
"BB": 10.0,
"SO": 24.0,
"HR": 1.0,
"BF": 105.0,
"Pitches": 447.0
},
"per_game": {
"IP": 5.0,
"ER": 2.2,
"R": 2.8,
"H": 4.4,
"BB": 2.0,
"SO": 4.8,
"HR": 0.2,
"BF": 21.0,
"Pitches": 89.4
},
"rates": {
"ERA": 4.0135,
"WHIP": 1.2973,
"ER_per_IP": 0.44595,
"H_per_IP": 0.89189,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.97297,
"HR_per_IP": 0.04054
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 23.0,
"R": 26.0,
"H": 47.0,
"BB": 23.0,
"SO": 45.0,
"HR": 2.0,
"BF": 220.0,
"Pitches": 886.0
},
"per_game": {
"IP": 5.0,
"ER": 2.3,
"R": 2.6,
"H": 4.7,
"BB": 2.3,
"SO": 4.5,
"HR": 0.2,
"BF": 22.0,
"Pitches": 88.6
},
"rates": {
"ERA": 4.0325,
"WHIP": 1.3636,
"ER_per_IP": 0.44805,
"H_per_IP": 0.91558,
"BB_per_IP": 0.44805,
"SO_per_IP": 0.87662,
"HR_per_IP": 0.03896
}
},
"season": {
"games": 25,
"totals": {
"IP": 125.1,
"ER": 61.0,
"R": 70.0,
"H": 106.0,
"BB": 66.0,
"SO": 114.0,
"HR": 11.0,
"BF": 547.0,
"Pitches": 2163.0
},
"per_game": {
"IP": 5.0,
"ER": 2.44,
"R": 2.8,
"H": 4.24,
"BB": 2.64,
"SO": 4.56,
"HR": 0.44,
"BF": 21.88,
"Pitches": 86.52
},
"rates": {
"ERA": 4.3803,
"WHIP": 1.3723,
"ER_per_IP": 0.4867,
"H_per_IP": 0.84574,
"BB_per_IP": 0.5266,
"SO_per_IP": 0.90957,
"HR_per_IP": 0.08777
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.312,
"predicted_H": 4.525,
"predicted_BB": 2.159,
"predicted_SO": 4.649,
"predicted_HR": 0.328,
"predicted_ERA": 4.1623,
"predicted_WHIP": 1.3367
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.312,
"final": 2.1808,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.525,
"final": 4.7247,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.159,
"final": 1.6717,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.649,
"final": 4.7966,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.328,
"final": 0.6105,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1623,
"final": 4.1623,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3367,
"final": 1.3367,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.1,
"ER": 23,
"H": 47,
"BB": 23,
"SO": 45,
"HR": 2,
"ERA": 4.032467532467532,
"WHIP": 1.3636363636363633,
"K9": 7.889610389610388,
"HR9": 0.3506493506493506,
"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-08-21T00:00:00"
},
"recent_form_boost": 0.9602071410289668,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696149",
"player_name": "Bubba Chandler",
"position": "Starter",
"team": "PIT",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "PIT",
"games": 134,
"wins": 65,
"losses": 69,
"win_pct": 0.4851,
"runs_scored": 657.0,
"runs_allowed": 630.0,
"run_differential": 27.0,
"run_differential_per_game": 0.2015,
"avg_runs_scored": 4.903,
"avg_runs_allowed": 4.7015,
"offense_index": 1.0941,
"defense_index": 0.9531,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.4,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0121
},
"opponent": {
"team": "SD",
"games": 133,
"wins": 71,
"losses": 62,
"win_pct": 0.5338,
"runs_scored": 566.0,
"runs_allowed": 552.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1053,
"avg_runs_scored": 4.2556,
"avg_runs_allowed": 4.1504,
"offense_index": 0.9497,
"defense_index": 1.0797,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.6,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0417
},
"edges": {
"quality_edge": -0.0296,
"offense_edge": 0.0941,
"opponent_offense_edge": -0.0503,
"defense_strength": -0.0469,
"opponent_defense_weakness": -0.0797,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9994,
"run_prevention": 0.9981,
"strikeout": 1.0031
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696149",
"profile": {
"available": true,
"pitcher_id": "696149",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 526.0,
"k_percent": 20.8,
"bb_percent": 12.1,
"woba": 0.307,
"xwoba": 0.312,
"sweet_spot_percent": 31.1,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 38.3,
"avg_best_speed": 78.3948,
"avg_hyper_speed": 93.8496,
"whiff_percent": 22.9,
"swing_percent": 47.3
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0812,
"command_and_miss": -0.3371,
"regression_edge": -0.1429,
"xwoba_edge": -0.0286,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.0714,
"whiff_edge": -0.3286,
"bb_edge": -0.725,
"pitch_design_score": 0.2779
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696149",
"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": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 94.8103538897678,
"release_spin_rate": 2354.536984834445,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.8104,
"release_spin_rate": 2354.537,
"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.2779,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.985,
"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.0342,
"sample_weight": 1.0,
"run_prevention_factor": 1.0029,
"strikeout_factor": 0.98,
"walk_factor": 1.058,
"homer_factor": 0.977,
"woba_minus_xwoba": -0.005,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "696149",
"espn_id": 4683325,
"player_name": "Bubba Chandler",
"team": "PIT",
"role": "pitcher",
"espn_rank": 144,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 144,
"gp_value": 25.0,
"gp_rank": 275,
"gs_value": 24.0,
"gs_rank": 48,
"qs_value": 4.0,
"qs_rank": 117,
"era_value": 4.3803,
"era_rank": null,
"w_value": 6.0,
"w_rank": 93,
"l_value": 8.0,
"l_rank": 38,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 125.1,
"ip_rank": 67,
"h_value": 106.0,
"h_rank": 88,
"er_value": 61.0,
"er_rank": 44,
"hr_value": 11.0,
"hr_rank": 135,
"bb_value": 66.0,
"bb_rank": 3,
"k_value": 114.0,
"k_rank": 63,
"k_per_9_value": 8.18617,
"k_per_9_rank": 25.0,
"whip_value": 1.3723,
"whip_rank": null,
"war_value": 1.15,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0029,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0029,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.058,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.977,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.98,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260826_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_PIT@SD | home | Randy Vásquez | Randy Vásquez | True | 5.0 | 5.0 | 0 | 3 | 0 | -3 | 5/1 | 1/2 | 4/2 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.194915254237288,
"WHIP": 1.3135593220338984,
"IP": 118.0,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.067,
"recent_avg_IP": 4.733,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.7906,
"sample_weight": 1.0,
"run_prevention_factor": 1.0672,
"strikeout_factor": 0.9251,
"walk_factor": 0.944,
"homer_factor": 1.1355,
"regression_flag": "neutral",
"k_percent": 14.9,
"bb_percent": 6.4,
"woba": 0.332,
"xwoba": 0.362,
"barrel_percent": 10.3,
"hard_hit_percent": 43.9,
"whiff_percent": 19.2
},
"espn_rank": {
"rank": 202,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681190",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 8.0,
"R": 8.0,
"H": 16.0,
"BB": 3.0,
"SO": 11.0,
"HR": 1.0,
"BF": 102.0,
"Pitches": 384.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 3.2,
"BB": 0.6,
"SO": 2.2,
"HR": 0.2,
"BF": 20.4,
"Pitches": 76.8
},
"rates": {
"ERA": 2.6024,
"WHIP": 0.6867,
"ER_per_IP": 0.28916,
"H_per_IP": 0.57831,
"BB_per_IP": 0.10843,
"SO_per_IP": 0.39759,
"HR_per_IP": 0.03614
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 40.1,
"ER": 19.0,
"R": 22.0,
"H": 39.0,
"BB": 7.0,
"SO": 15.0,
"HR": 4.0,
"BF": 164.0,
"Pitches": 601.0
},
"per_game": {
"IP": 4.0,
"ER": 1.9,
"R": 2.2,
"H": 3.9,
"BB": 0.7,
"SO": 1.5,
"HR": 0.4,
"BF": 16.4,
"Pitches": 60.1
},
"rates": {
"ERA": 4.2397,
"WHIP": 1.1405,
"ER_per_IP": 0.47107,
"H_per_IP": 0.96694,
"BB_per_IP": 0.17355,
"SO_per_IP": 0.3719,
"HR_per_IP": 0.09917
}
},
"season": {
"games": 25,
"totals": {
"IP": 118.0,
"ER": 55.0,
"R": 59.0,
"H": 123.0,
"BB": 32.0,
"SO": 74.0,
"HR": 15.0,
"BF": 498.0,
"Pitches": 1903.0
},
"per_game": {
"IP": 4.2,
"ER": 2.2,
"R": 2.36,
"H": 4.92,
"BB": 1.28,
"SO": 2.96,
"HR": 0.6,
"BF": 19.92,
"Pitches": 76.12
},
"rates": {
"ERA": 4.1949,
"WHIP": 1.3136,
"ER_per_IP": 0.4661,
"H_per_IP": 1.04237,
"BB_per_IP": 0.27119,
"SO_per_IP": 0.62712,
"HR_per_IP": 0.12712
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 1.995,
"predicted_H": 4.094,
"predicted_BB": 0.97,
"predicted_SO": 2.548,
"predicted_HR": 0.432,
"predicted_ERA": 3.6627,
"predicted_WHIP": 1.0329
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4204,
"form_weight": 0.5796,
"form_reliability": 0.8333,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.995,
"final": 2.4175,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.094,
"final": 4.4749,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.97,
"final": 0.9826,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.548,
"final": 3.1585,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.432,
"final": 0.2504,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6627,
"final": 3.6627,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0329,
"final": 1.0329,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 1,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0.0,
"OBP": 0.0,
"SLG": 0.0,
"OPS": 0.0,
"games_played": 1,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 40.1,
"ER": 19,
"H": 39,
"BB": 7,
"SO": 15,
"HR": 4,
"ERA": 4.239669421487603,
"WHIP": 1.140495867768595,
"K9": 3.3471074380165287,
"HR9": 0.8925619834710743,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.9779388411470306,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681190",
"player_name": "Randy V\u00e1squez",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": "SD",
"games": 133,
"wins": 71,
"losses": 62,
"win_pct": 0.5338,
"runs_scored": 566.0,
"runs_allowed": 552.0,
"run_differential": 14.0,
"run_differential_per_game": 0.1053,
"avg_runs_scored": 4.2556,
"avg_runs_allowed": 4.1504,
"offense_index": 0.9497,
"defense_index": 1.0797,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 2.6,
"run_differential": 11.0
},
"available": true,
"quality_score": 0.0417
},
"opponent": {
"team": "PIT",
"games": 134,
"wins": 65,
"losses": 69,
"win_pct": 0.4851,
"runs_scored": 657.0,
"runs_allowed": 630.0,
"run_differential": 27.0,
"run_differential_per_game": 0.2015,
"avg_runs_scored": 4.903,
"avg_runs_allowed": 4.7015,
"offense_index": 1.0941,
"defense_index": 0.9531,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.4,
"run_differential": -2.0
},
"available": true,
"quality_score": 0.0121
},
"edges": {
"quality_edge": 0.0296,
"offense_edge": -0.0503,
"opponent_offense_edge": 0.0941,
"defense_strength": 0.0797,
"opponent_defense_weakness": 0.0469,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9998,
"run_prevention": 1.0056,
"strikeout": 0.9934
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681190",
"profile": {
"available": true,
"pitcher_id": "681190",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 451.0,
"k_percent": 14.9,
"bb_percent": 6.4,
"woba": 0.332,
"xwoba": 0.362,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 43.9,
"avg_best_speed": 81.9546,
"avg_hyper_speed": 94.8178,
"whiff_percent": 19.2,
"swing_percent": 49.9
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.9848,
"command_and_miss": -0.6164,
"regression_edge": -0.8571,
"xwoba_edge": -1.4571,
"barrel_edge": -0.7111,
"hard_hit_edge": -0.8714,
"whiff_edge": -0.8571,
"bb_edge": 0.7,
"pitch_design_score": 0.086
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681190",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 66,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 66,
"pitch_usage": 0.0,
"release_speed": 91.38308720522035,
"release_spin_rate": 2598.7911471091766,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 66,
"pitch_usage": 0.0,
"release_speed": 91.38308720522035,
"release_spin_rate": 2598.7911471091766,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3831,
"release_spin_rate": 2598.7911,
"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.086,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.6141,
"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.7906,
"sample_weight": 1.0,
"run_prevention_factor": 1.0672,
"strikeout_factor": 0.9251,
"walk_factor": 0.944,
"homer_factor": 1.1355,
"woba_minus_xwoba": -0.03,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "681190",
"espn_id": 4722847,
"player_name": "Randy Vasquez",
"team": "SD",
"role": "pitcher",
"espn_rank": 202,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 202,
"gp_value": 25.0,
"gp_rank": 275,
"gs_value": 20.0,
"gs_rank": 88,
"qs_value": 6.0,
"qs_rank": 83,
"era_value": 4.1949,
"era_rank": null,
"w_value": 9.0,
"w_rank": 29,
"l_value": 6.0,
"l_rank": 97,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 1.0,
"hld_rank": 252,
"ip_value": 118.0,
"ip_rank": 85,
"h_value": 123.0,
"h_rank": 51,
"er_value": 55.0,
"er_rank": 65,
"hr_value": 15.0,
"hr_rank": 70,
"bb_value": 32.0,
"bb_rank": 122,
"k_value": 74.0,
"k_rank": 148,
"k_per_9_value": 5.644068,
"k_per_9_rank": 47.0,
"whip_value": 1.3135,
"whip_rank": null,
"war_value": 0.77,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0672,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0672,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1355,
"adjusted": 1
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9251,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 23,
"Pitches": 94,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
}
],
"provenance": {
"prediction": "output/games/20260826_PIT@SD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_TB@DET | away | Freddy Peralta | Freddy Peralta | True | 5.0 | 6.0 | 3 | 3 | 0 | -3 | 2/2 | 2/0 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.333333333333333,
"WHIP": 1.4592592592592593,
"IP": 135.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.192,
"recent_avg_IP": 5.067,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0252,
"sample_weight": 1.0,
"run_prevention_factor": 0.9979,
"strikeout_factor": 1.0029,
"walk_factor": 0.996,
"homer_factor": 0.9926,
"regression_flag": "positive_pitcher_regression",
"k_percent": 21.5,
"bb_percent": 9.0,
"woba": 0.349,
"xwoba": 0.313,
"barrel_percent": 6.3,
"hard_hit_percent": 38.7,
"whiff_percent": 26.2
},
"espn_rank": {
"rank": 809,
"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": "642547",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 19.0,
"R": 20.0,
"H": 29.0,
"BB": 8.0,
"SO": 19.0,
"HR": 5.0,
"BF": 109.0,
"Pitches": 436.0
},
"per_game": {
"IP": 5.0,
"ER": 3.8,
"R": 4.0,
"H": 5.8,
"BB": 1.6,
"SO": 3.8,
"HR": 1.0,
"BF": 21.8,
"Pitches": 87.2
},
"rates": {
"ERA": 6.75,
"WHIP": 1.4605,
"ER_per_IP": 0.75,
"H_per_IP": 1.14474,
"BB_per_IP": 0.31579,
"SO_per_IP": 0.75,
"HR_per_IP": 0.19737
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 34.0,
"R": 40.0,
"H": 58.0,
"BB": 20.0,
"SO": 46.0,
"HR": 10.0,
"BF": 225.0,
"Pitches": 927.0
},
"per_game": {
"IP": 5.0,
"ER": 3.4,
"R": 4.0,
"H": 5.8,
"BB": 2.0,
"SO": 4.6,
"HR": 1.0,
"BF": 22.5,
"Pitches": 92.7
},
"rates": {
"ERA": 6.2027,
"WHIP": 1.5811,
"ER_per_IP": 0.68919,
"H_per_IP": 1.17568,
"BB_per_IP": 0.40541,
"SO_per_IP": 0.93243,
"HR_per_IP": 0.2027
}
},
"season": {
"games": 26,
"totals": {
"IP": 135.0,
"ER": 80.0,
"R": 88.0,
"H": 143.0,
"BB": 54.0,
"SO": 129.0,
"HR": 22.0,
"BF": 601.0,
"Pitches": 2436.0
},
"per_game": {
"IP": 5.1,
"ER": 3.0769,
"R": 3.3846,
"H": 5.5,
"BB": 2.0769,
"SO": 4.9615,
"HR": 0.8462,
"BF": 23.1154,
"Pitches": 93.6923
},
"rates": {
"ERA": 5.3333,
"WHIP": 1.4593,
"ER_per_IP": 0.59259,
"H_per_IP": 1.05926,
"BB_per_IP": 0.4,
"SO_per_IP": 0.95556,
"HR_per_IP": 0.16296
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 3.365,
"predicted_H": 5.622,
"predicted_BB": 1.843,
"predicted_SO": 4.397,
"predicted_HR": 0.935,
"predicted_ERA": 5.9898,
"predicted_WHIP": 1.4767
}
},
"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": 2.0,
"form": 3.365,
"final": 2.7942,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 5.622,
"final": 4.1075,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.843,
"final": 1.9086,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.397,
"final": 4.6491,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.935,
"final": 0.544,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.9898,
"final": 5.9898,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4767,
"final": 1.4767,
"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.1,
"ER": 34,
"H": 58,
"BB": 20,
"SO": 46,
"HR": 10,
"ERA": 6.202702702702703,
"WHIP": 1.581081081081081,
"K9": 8.391891891891891,
"HR9": 1.8243243243243243,
"games_pitched": 10,
"quality_starts": 1,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.2097947156165414,
"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": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "642547",
"player_name": "Freddy Peralta",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 132,
"wins": 78,
"losses": 54,
"win_pct": 0.5909,
"runs_scored": 592.0,
"runs_allowed": 548.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3333,
"avg_runs_scored": 4.4848,
"avg_runs_allowed": 4.1515,
"offense_index": 0.9991,
"defense_index": 1.0813,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.1,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0831
},
"opponent": {
"team": "DET",
"games": 132,
"wins": 62,
"losses": 70,
"win_pct": 0.4697,
"runs_scored": 592.0,
"runs_allowed": 519.0,
"run_differential": 73.0,
"run_differential_per_game": 0.553,
"avg_runs_scored": 4.4848,
"avg_runs_allowed": 3.9318,
"offense_index": 0.9991,
"defense_index": 1.1417,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.8,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.063
},
"edges": {
"quality_edge": 0.1461,
"offense_edge": -0.0009,
"opponent_offense_edge": -0.0009,
"defense_strength": 0.0813,
"opponent_defense_weakness": -0.1417,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0083,
"run_prevention": 0.9844,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "642547",
"profile": {
"available": true,
"pitcher_id": "642547",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 571.0,
"k_percent": 21.5,
"bb_percent": 9.0,
"woba": 0.349,
"xwoba": 0.313,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 38.7,
"avg_best_speed": 76.1715,
"avg_hyper_speed": 93.6744,
"whiff_percent": 26.2,
"swing_percent": 47.4
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1468,
"command_and_miss": 0.0279,
"regression_edge": 1.0286,
"xwoba_edge": -0.0571,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.1286,
"whiff_edge": 0.1429,
"bb_edge": 0.05,
"pitch_design_score": -0.0344
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "642547",
"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.23342464094252,
"release_spin_rate": 2302.228094715452,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.23342464094252,
"release_spin_rate": 2302.228094715452,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.2334,
"release_spin_rate": 2302.2281,
"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.0344,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2458,
"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.0252,
"sample_weight": 1.0,
"run_prevention_factor": 0.9979,
"strikeout_factor": 1.0029,
"walk_factor": 0.996,
"homer_factor": 0.9926,
"woba_minus_xwoba": 0.036,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "642547",
"espn_id": 39825,
"player_name": "Freddy Peralta",
"team": "TB",
"role": "pitcher",
"espn_rank": 809,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 809,
"gp_value": 26.0,
"gp_rank": 242,
"gs_value": 26.0,
"gs_rank": 15,
"qs_value": 5.0,
"qs_rank": 103,
"era_value": 5.3333,
"era_rank": 53.0,
"w_value": 5.0,
"w_rank": 123,
"l_value": 11.0,
"l_rank": 9,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 135.0,
"ip_rank": 47,
"h_value": 143.0,
"h_rank": 14,
"er_value": 80.0,
"er_rank": 3,
"hr_value": 22.0,
"hr_rank": 17,
"bb_value": 54.0,
"bb_rank": 16,
"k_value": 129.0,
"k_rank": 41,
"k_per_9_value": 8.6,
"k_per_9_rank": 23.0,
"whip_value": 1.4592,
"whip_rank": 53.0,
"war_value": -0.91,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9979,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9979,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9926,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0029,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"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/20260826_TB@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_TB@DET | home | Troy Melton | Troy Melton | True | 6.0 | 7.0 | 3 | 1 | 3 | 2 | 1/7 | 2/0 | 4/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.6,
"WHIP": 1.0,
"IP": 90.0,
"games_started": null,
"games_pitched": 15,
"role_avg_IP": 6.0,
"recent_avg_IP": 6.0,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.3835,
"sample_weight": 1.0,
"run_prevention_factor": 0.9674,
"strikeout_factor": 0.9977,
"walk_factor": 0.974,
"homer_factor": 0.941,
"regression_flag": "neutral",
"k_percent": 21.4,
"bb_percent": 7.9,
"woba": 0.267,
"xwoba": 0.279,
"barrel_percent": 6.0,
"hard_hit_percent": 35.7,
"whiff_percent": 25.4
},
"espn_rank": {
"rank": 13,
"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": "675512",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 15,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 3.0,
"R": 7.0,
"H": 24.0,
"BB": 9.0,
"SO": 21.0,
"HR": 2.0,
"BF": 119.0,
"Pitches": 462.0
},
"per_game": {
"IP": 6.0,
"ER": 0.6,
"R": 1.4,
"H": 4.8,
"BB": 1.8,
"SO": 4.2,
"HR": 0.4,
"BF": 23.8,
"Pitches": 92.4
},
"rates": {
"ERA": 0.9,
"WHIP": 1.1,
"ER_per_IP": 0.1,
"H_per_IP": 0.8,
"BB_per_IP": 0.3,
"SO_per_IP": 0.7,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 7.0,
"R": 12.0,
"H": 41.0,
"BB": 19.0,
"SO": 57.0,
"HR": 4.0,
"BF": 230.0,
"Pitches": 909.0
},
"per_game": {
"IP": 6.0,
"ER": 0.7,
"R": 1.2,
"H": 4.1,
"BB": 1.9,
"SO": 5.7,
"HR": 0.4,
"BF": 23.0,
"Pitches": 90.9
},
"rates": {
"ERA": 1.08,
"WHIP": 1.0286,
"ER_per_IP": 0.12,
"H_per_IP": 0.70286,
"BB_per_IP": 0.32571,
"SO_per_IP": 0.97714,
"HR_per_IP": 0.06857
}
},
"season": {
"games": 15,
"totals": {
"IP": 90.0,
"ER": 16.0,
"R": 21.0,
"H": 62.0,
"BB": 28.0,
"SO": 76.0,
"HR": 10.0,
"BF": 355.0,
"Pitches": 1343.0
},
"per_game": {
"IP": 6.0,
"ER": 1.0667,
"R": 1.4,
"H": 4.1333,
"BB": 1.8667,
"SO": 5.0667,
"HR": 0.6667,
"BF": 23.6667,
"Pitches": 89.5333
},
"rates": {
"ERA": 1.6,
"WHIP": 1.0,
"ER_per_IP": 0.17778,
"H_per_IP": 0.68889,
"BB_per_IP": 0.31111,
"SO_per_IP": 0.84444,
"HR_per_IP": 0.11111
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.303,
"predicted_H": 4.809,
"predicted_BB": 1.952,
"predicted_SO": 5.135,
"predicted_HR": 0.563,
"predicted_ERA": 1.9538,
"predicted_WHIP": 1.1269
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.303,
"final": 1.6206,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.809,
"final": 3.0735,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.952,
"final": 1.9739,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.135,
"final": 4.6179,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.563,
"final": 0.7621,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9538,
"final": 1.9538,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1269,
"final": 1.1269,
"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": 7,
"H": 41,
"BB": 19,
"SO": 57,
"HR": 4,
"ERA": 1.0799999999999998,
"WHIP": 1.0285714285714285,
"K9": 8.794285714285714,
"HR9": 0.6171428571428571,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.6929577164690786,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.75,
"prior_weight": 0.25
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 1,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "675512",
"player_name": "Troy Melton",
"position": "Starter",
"team": "DET",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 1.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": 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": 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": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 4.0,
"delta": -1.0,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 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": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "DET",
"games": 132,
"wins": 62,
"losses": 70,
"win_pct": 0.4697,
"runs_scored": 592.0,
"runs_allowed": 519.0,
"run_differential": 73.0,
"run_differential_per_game": 0.553,
"avg_runs_scored": 4.4848,
"avg_runs_allowed": 3.9318,
"offense_index": 0.9991,
"defense_index": 1.1417,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 4.8,
"run_differential": -13.0
},
"available": true,
"quality_score": -0.063
},
"opponent": {
"team": "TB",
"games": 132,
"wins": 78,
"losses": 54,
"win_pct": 0.5909,
"runs_scored": 592.0,
"runs_allowed": 548.0,
"run_differential": 44.0,
"run_differential_per_game": 0.3333,
"avg_runs_scored": 4.4848,
"avg_runs_allowed": 4.1515,
"offense_index": 0.9991,
"defense_index": 1.0813,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.1,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0831
},
"edges": {
"quality_edge": -0.1461,
"offense_edge": -0.0009,
"opponent_offense_edge": -0.0009,
"defense_strength": 0.1417,
"opponent_defense_weakness": -0.0813,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9984,
"run_prevention": 0.993,
"strikeout": 0.9957
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "675512",
"profile": {
"available": true,
"pitcher_id": "675512",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 329.0,
"k_percent": 21.4,
"bb_percent": 7.9,
"woba": 0.267,
"xwoba": 0.279,
"sweet_spot_percent": 27.7,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 35.7,
"avg_best_speed": 77.6189,
"avg_hyper_speed": 93.5308,
"whiff_percent": 25.4,
"swing_percent": 49.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7139,
"command_and_miss": 0.0364,
"regression_edge": -0.3429,
"xwoba_edge": 0.9143,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.3,
"whiff_edge": 0.0286,
"bb_edge": 0.325,
"pitch_design_score": 0.1064
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675512",
"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": 91.7475265975609,
"release_spin_rate": 2195.3043061551607,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 91.7475265975609,
"release_spin_rate": 2195.3043061551607,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7475,
"release_spin_rate": 2195.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.1064,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7599,
"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.3835,
"sample_weight": 1.0,
"run_prevention_factor": 0.9674,
"strikeout_factor": 0.9977,
"walk_factor": 0.974,
"homer_factor": 0.941,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675512",
"espn_id": 5294127,
"player_name": "Troy Melton",
"team": "DET",
"role": "pitcher",
"espn_rank": 13,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 13,
"gp_value": 15.0,
"gp_rank": 432,
"gs_value": 15.0,
"gs_rank": 122,
"qs_value": 8.0,
"qs_rank": 69,
"era_value": 1.6,
"era_rank": null,
"w_value": 7.0,
"w_rank": 73,
"l_value": 2.0,
"l_rank": 301,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 90.0,
"ip_rank": 130,
"h_value": 62.0,
"h_rank": 167,
"er_value": 16.0,
"er_rank": 363,
"hr_value": 10.0,
"hr_rank": 143,
"bb_value": 28.0,
"bb_rank": 161,
"k_value": 76.0,
"k_rank": 140,
"k_per_9_value": 7.6,
"k_per_9_rank": 29.0,
"whip_value": 1.0,
"whip_rank": null,
"war_value": 3.74,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9674,
"adjusted": 1
},
"predicted_H": {
"original": 5.0,
"factor": 0.9674,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.974,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.941,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9977,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 22,
"Pitches": 90,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 6",
"detail": "Actual minus predicted hits was +6."
}
],
"provenance": {
"prediction": "output/games/20260826_TB@DET.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_TEX@CHW | away | MacKenzie Gore | MacKenzie Gore | True | 5.2 | 3.2 | -6 | 3 | 4 | 1 | 3/8 | 2/4 | 6/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.2631578947368425,
"WHIP": 1.2288329519450802,
"IP": 145.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.395,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1288,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 1.0326,
"walk_factor": 0.984,
"homer_factor": 1.0495,
"regression_flag": "neutral",
"k_percent": 26.0,
"bb_percent": 8.4,
"woba": 0.305,
"xwoba": 0.302,
"barrel_percent": 9.0,
"hard_hit_percent": 41.9,
"whiff_percent": 26.9
},
"espn_rank": {
"rank": 114,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669022",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 7.0,
"H": 20.0,
"BB": 8.0,
"SO": 34.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 496.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 4.0,
"BB": 1.6,
"SO": 6.8,
"HR": 0.8,
"BF": 24.2,
"Pitches": 99.2
},
"rates": {
"ERA": 2.1,
"WHIP": 0.9333,
"ER_per_IP": 0.23333,
"H_per_IP": 0.66667,
"BB_per_IP": 0.26667,
"SO_per_IP": 1.13333,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 28.0,
"R": 28.0,
"H": 51.0,
"BB": 14.0,
"SO": 64.0,
"HR": 10.0,
"BF": 235.0,
"Pitches": 926.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 2.8,
"H": 5.1,
"BB": 1.4,
"SO": 6.4,
"HR": 1.0,
"BF": 23.5,
"Pitches": 92.6
},
"rates": {
"ERA": 4.6098,
"WHIP": 1.189,
"ER_per_IP": 0.5122,
"H_per_IP": 0.93293,
"BB_per_IP": 0.2561,
"SO_per_IP": 1.17073,
"HR_per_IP": 0.18293
}
},
"season": {
"games": 27,
"totals": {
"IP": 145.2,
"ER": 69.0,
"R": 69.0,
"H": 127.0,
"BB": 52.0,
"SO": 161.0,
"HR": 18.0,
"BF": 619.0,
"Pitches": 2469.0
},
"per_game": {
"IP": 5.1,
"ER": 2.5556,
"R": 2.5556,
"H": 4.7037,
"BB": 1.9259,
"SO": 5.963,
"HR": 0.6667,
"BF": 22.9259,
"Pitches": 91.4444
},
"rates": {
"ERA": 4.2632,
"WHIP": 1.2288,
"ER_per_IP": 0.47368,
"H_per_IP": 0.87185,
"BB_per_IP": 0.35698,
"SO_per_IP": 1.10526,
"HR_per_IP": 0.12357
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.244,
"predicted_H": 4.669,
"predicted_BB": 1.661,
"predicted_SO": 6.261,
"predicted_HR": 0.837,
"predicted_ERA": 3.5821,
"predicted_WHIP": 1.1226
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.244,
"final": 2.5585,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.669,
"final": 3.9747,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.661,
"final": 1.802,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.261,
"final": 6.1524,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.837,
"final": 1.3208,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.5821,
"final": 3.5821,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1226,
"final": 1.1226,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 54.2,
"ER": 28,
"H": 51,
"BB": 14,
"SO": 64,
"HR": 10,
"ERA": 4.609756097560975,
"WHIP": 1.1890243902439024,
"K9": 10.536585365853657,
"HR9": 1.646341463414634,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 1.0207868052671676,
"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": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669022",
"player_name": "MacKenzie Gore",
"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": 3.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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": 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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TEX",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 539.0,
"runs_allowed": 580.0,
"run_differential": -41.0,
"run_differential_per_game": -0.3083,
"avg_runs_scored": 4.0526,
"avg_runs_allowed": 4.3609,
"offense_index": 0.9069,
"defense_index": 1.0248,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0062
},
"opponent": {
"team": "CHW",
"games": 132,
"wins": 69,
"losses": 63,
"win_pct": 0.5227,
"runs_scored": 631.0,
"runs_allowed": 593.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2879,
"avg_runs_scored": 4.7803,
"avg_runs_allowed": 4.4924,
"offense_index": 1.0697,
"defense_index": 0.9948,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.1,
"run_differential": -7.0
},
"available": true,
"quality_score": 0.0547
},
"edges": {
"quality_edge": -0.0609,
"offense_edge": -0.0931,
"opponent_offense_edge": 0.0697,
"defense_strength": 0.0248,
"opponent_defense_weakness": 0.0052,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9955,
"run_prevention": 1.0117,
"strikeout": 0.9926
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669022",
"profile": {
"available": true,
"pitcher_id": "669022",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 595.0,
"k_percent": 26.0,
"bb_percent": 8.4,
"woba": 0.305,
"xwoba": 0.302,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 41.9,
"avg_best_speed": 77.278,
"avg_hyper_speed": 94.5679,
"whiff_percent": 26.9,
"swing_percent": 49.6
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0336,
"command_and_miss": 0.3821,
"regression_edge": 0.0857,
"xwoba_edge": 0.2571,
"barrel_edge": -0.4222,
"hard_hit_edge": -0.5857,
"whiff_edge": 0.2429,
"bb_edge": 0.2,
"pitch_design_score": 0.0257
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669022",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 98,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 98,
"pitch_usage": 0.0,
"release_speed": 90.30705137786757,
"release_spin_rate": 2168.388338902536,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3071,
"release_spin_rate": 2168.3883,
"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.0257,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1837,
"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.1288,
"sample_weight": 1.0,
"run_prevention_factor": 0.9891,
"strikeout_factor": 1.0326,
"walk_factor": 0.984,
"homer_factor": 1.0495,
"woba_minus_xwoba": 0.003,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669022",
"espn_id": 39636,
"player_name": "MacKenzie Gore",
"team": "TEX",
"role": "pitcher",
"espn_rank": 114,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 114,
"gp_value": 27.0,
"gp_rank": 223,
"gs_value": 27.0,
"gs_rank": 3,
"qs_value": 9.0,
"qs_rank": 59,
"era_value": 4.2631,
"era_rank": 46.0,
"w_value": 7.0,
"w_rank": 73,
"l_value": 9.0,
"l_rank": 19,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 145.2,
"ip_rank": 25,
"h_value": 127.0,
"h_rank": 42,
"er_value": 69.0,
"er_rank": 14,
"hr_value": 18.0,
"hr_rank": 39,
"bb_value": 52.0,
"bb_rank": 18,
"k_value": 161.0,
"k_rank": 15,
"k_per_9_value": 9.947369,
"k_per_9_rank": 16.0,
"whip_value": 1.2288,
"whip_rank": 35.0,
"war_value": 1.43,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9891,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9891,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0495,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0326,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 91,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "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."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
}
],
"provenance": {
"prediction": "output/games/20260826_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260826 | 20260826_TEX@CHW | home | Sean Burke | Sean Burke | True | 5.2 | 3.0 | -8 | 1 | 2 | 1 | 3/2 | 2/8 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.267123287671233,
"WHIP": 1.1095890410958904,
"IP": 146.0,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.5,
"recent_avg_IP": 5.533,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2429,
"sample_weight": 1.0,
"run_prevention_factor": 0.9794,
"strikeout_factor": 1.0286,
"walk_factor": 0.956,
"homer_factor": 0.99,
"regression_flag": "neutral",
"k_percent": 26.5,
"bb_percent": 7.0,
"woba": 0.293,
"xwoba": 0.293,
"barrel_percent": 7.5,
"hard_hit_percent": 37.5,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 12,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "680732",
"report_date": "20260826",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.2,
"ER": 11.0,
"R": 11.0,
"H": 23.0,
"BB": 7.0,
"SO": 28.0,
"HR": 4.0,
"BF": 114.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.2,
"H": 4.6,
"BB": 1.4,
"SO": 5.6,
"HR": 0.8,
"BF": 22.8,
"Pitches": 89.2
},
"rates": {
"ERA": 3.5783,
"WHIP": 1.0843,
"ER_per_IP": 0.39759,
"H_per_IP": 0.83133,
"BB_per_IP": 0.25301,
"SO_per_IP": 1.01205,
"HR_per_IP": 0.14458
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.2,
"ER": 17.0,
"R": 18.0,
"H": 44.0,
"BB": 12.0,
"SO": 71.0,
"HR": 6.0,
"BF": 232.0,
"Pitches": 928.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.8,
"H": 4.4,
"BB": 1.2,
"SO": 7.1,
"HR": 0.6,
"BF": 23.2,
"Pitches": 92.8
},
"rates": {
"ERA": 2.608,
"WHIP": 0.9545,
"ER_per_IP": 0.28977,
"H_per_IP": 0.75,
"BB_per_IP": 0.20455,
"SO_per_IP": 1.21023,
"HR_per_IP": 0.10227
}
},
"season": {
"games": 26,
"totals": {
"IP": 146.0,
"ER": 53.0,
"R": 55.0,
"H": 120.0,
"BB": 42.0,
"SO": 158.0,
"HR": 17.0,
"BF": 596.0,
"Pitches": 2354.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0385,
"R": 2.1154,
"H": 4.6154,
"BB": 1.6154,
"SO": 6.0769,
"HR": 0.6538,
"BF": 22.9231,
"Pitches": 90.5385
},
"rates": {
"ERA": 3.2671,
"WHIP": 1.1096,
"ER_per_IP": 0.36301,
"H_per_IP": 0.82192,
"BB_per_IP": 0.28767,
"SO_per_IP": 1.08219,
"HR_per_IP": 0.11644
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.172,
"predicted_H": 4.779,
"predicted_BB": 1.517,
"predicted_SO": 6.175,
"predicted_HR": 0.737,
"predicted_ERA": 3.391,
"predicted_WHIP": 1.0921
}
},
"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": 1.0,
"form": 2.172,
"final": 1.6819,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.779,
"final": 4.0351,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.517,
"final": 1.719,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 6.175,
"final": 6.1018,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.737,
"final": 0.4288,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.391,
"final": 3.391,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0921,
"final": 1.0921,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 58.2,
"ER": 17,
"H": 44,
"BB": 12,
"SO": 71,
"HR": 6,
"ERA": 2.6079545454545454,
"WHIP": 0.9545454545454546,
"K9": 10.892045454545455,
"HR9": 0.9204545454545455,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-21T00:00:00"
},
"recent_form_boost": 0.7897221572627331,
"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": 2.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"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": "680732",
"player_name": "Sean Burke",
"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": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 132,
"wins": 69,
"losses": 63,
"win_pct": 0.5227,
"runs_scored": 631.0,
"runs_allowed": 593.0,
"run_differential": 38.0,
"run_differential_per_game": 0.2879,
"avg_runs_scored": 4.7803,
"avg_runs_allowed": 4.4924,
"offense_index": 1.0697,
"defense_index": 0.9948,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 5.1,
"run_differential": -7.0
},
"available": true,
"quality_score": 0.0547
},
"opponent": {
"team": "TEX",
"games": 133,
"wins": 66,
"losses": 67,
"win_pct": 0.4962,
"runs_scored": 539.0,
"runs_allowed": 580.0,
"run_differential": -41.0,
"run_differential_per_game": -0.3083,
"avg_runs_scored": 4.0526,
"avg_runs_allowed": 4.3609,
"offense_index": 0.9069,
"defense_index": 1.0248,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 3.4,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.0062
},
"edges": {
"quality_edge": 0.0609,
"offense_edge": 0.0697,
"opponent_offense_edge": -0.0931,
"defense_strength": -0.0052,
"opponent_defense_weakness": -0.0248,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.006,
"run_prevention": 0.9826,
"strikeout": 1.0093
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680732",
"profile": {
"available": true,
"pitcher_id": "680732",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 546.0,
"k_percent": 26.5,
"bb_percent": 7.0,
"woba": 0.293,
"xwoba": 0.293,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 37.5,
"avg_best_speed": 79.0177,
"avg_hyper_speed": 93.7962,
"whiff_percent": 25.7,
"swing_percent": 49.5
},
"league_medians": {
"pa": 123.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.4,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.614,
"avg_hyper_speed": 93.9187,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2384,
"command_and_miss": 0.4243,
"regression_edge": 0.0,
"xwoba_edge": 0.5143,
"barrel_edge": -0.0889,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.0714,
"bb_edge": 0.55,
"pitch_design_score": -0.011
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680732",
"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.65202320477285,
"release_spin_rate": 2508.661669048999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.65202320477285,
"release_spin_rate": 2508.661669048999,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.652,
"release_spin_rate": 2508.6617,
"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.011,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.0783,
"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.2429,
"sample_weight": 1.0,
"run_prevention_factor": 0.9794,
"strikeout_factor": 1.0286,
"walk_factor": 0.956,
"homer_factor": 0.99,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680732",
"espn_id": 4867679,
"player_name": "Sean Burke",
"team": "CHW",
"role": "pitcher",
"espn_rank": 12,
"espn_total_ranked": 831,
"metrics": {
"espn_rank": 12,
"gp_value": 26.0,
"gp_rank": 242,
"gs_value": 22.0,
"gs_rank": 72,
"qs_value": 10.0,
"qs_rank": 50,
"era_value": 3.2671,
"era_rank": 18.0,
"w_value": 7.0,
"w_rank": 73,
"l_value": 6.0,
"l_rank": 97,
"sv_value": 0.0,
"sv_rank": 241,
"hld_value": 0.0,
"hld_rank": 331,
"ip_value": 146.0,
"ip_rank": 24,
"h_value": 120.0,
"h_rank": 61,
"er_value": 53.0,
"er_rank": 74,
"hr_value": 17.0,
"hr_rank": 52,
"bb_value": 42.0,
"bb_rank": 57,
"k_value": 158.0,
"k_rank": 18,
"k_per_9_value": 9.739726,
"k_per_9_rank": 20.0,
"whip_value": 1.1095,
"whip_rank": 15.0,
"war_value": 3.81,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9794,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9794,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.956,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.99,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0286,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 2,
"predicted_SO": 6,
"predicted_HR": 0,
"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."
},
{
"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": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +6."
}
],
"provenance": {
"prediction": "output/games/20260826_TEX@CHW.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |