| 20260907 | 20260907_ARI@KC | away | Jose Cabrera | Derek Law | False | 4.2 | 2.0 | -8 | 2 | 0 | -2 | 3/1 | 1/0 | 5/0 | Last 10 before this game (6 available){
"model_context": {
"embedded_season": {
"ERA": 4.875,
"WHIP": 1.3333333333333333,
"IP": 24.0,
"games_started": null,
"games_pitched": 6,
"role_avg_IP": 4.4,
"recent_avg_IP": 4.4,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.1242,
"sample_weight": 0.45,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9689,
"walk_factor": 0.9856,
"homer_factor": 1.008,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 7.6,
"woba": 0.336,
"xwoba": 0.336,
"barrel_percent": 7.8,
"hard_hit_percent": 35.1,
"whiff_percent": 18.8
},
"espn_rank": {
"rank": 429,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.8653846153846154,
"last_10": 0.1346153846153846
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "703615",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 6,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 19.0,
"ER": 13.0,
"R": 13.0,
"H": 21.0,
"BB": 8.0,
"SO": 14.0,
"HR": 4.0,
"BF": 87.0,
"Pitches": 311.0
},
"per_game": {
"IP": 3.2,
"ER": 2.6,
"R": 2.6,
"H": 4.2,
"BB": 1.6,
"SO": 2.8,
"HR": 0.8,
"BF": 17.4,
"Pitches": 62.2
},
"rates": {
"ERA": 6.1579,
"WHIP": 1.5263,
"ER_per_IP": 0.68421,
"H_per_IP": 1.10526,
"BB_per_IP": 0.42105,
"SO_per_IP": 0.73684,
"HR_per_IP": 0.21053
}
},
"last_10": {
"games": 6,
"totals": {
"IP": 24.0,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 8.0,
"SO": 17.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 373.0
},
"per_game": {
"IP": 4.0,
"ER": 2.1667,
"R": 2.1667,
"H": 4.0,
"BB": 1.3333,
"SO": 2.8333,
"HR": 0.6667,
"BF": 17.5,
"Pitches": 62.1667
},
"rates": {
"ERA": 4.875,
"WHIP": 1.3333,
"ER_per_IP": 0.54167,
"H_per_IP": 1.0,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.70833,
"HR_per_IP": 0.16667
}
},
"season": {
"games": 6,
"totals": {
"IP": 24.0,
"ER": 13.0,
"R": 13.0,
"H": 24.0,
"BB": 8.0,
"SO": 17.0,
"HR": 4.0,
"BF": 105.0,
"Pitches": 373.0
},
"per_game": {
"IP": 4.0,
"ER": 2.1667,
"R": 2.1667,
"H": 4.0,
"BB": 1.3333,
"SO": 2.8333,
"HR": 0.6667,
"BF": 17.5,
"Pitches": 62.1667
},
"rates": {
"ERA": 4.875,
"WHIP": 1.3333,
"ER_per_IP": 0.54167,
"H_per_IP": 1.0,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.70833,
"HR_per_IP": 0.16667
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 2.445,
"predicted_H": 4.3,
"predicted_BB": 1.627,
"predicted_SO": 3.427,
"predicted_HR": 0.739,
"predicted_ERA": 5.3074,
"predicted_WHIP": 1.4296
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.542,
"form_weight": 0.458,
"form_reliability": 0.5455,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.445,
"final": 2.2038,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.3,
"final": 3.5954,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.627,
"final": 1.2871,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.427,
"final": 4.2796,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.739,
"final": 0.8805,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.3074,
"final": 5.3074,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4296,
"final": 1.4296,
"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": 24.0,
"ER": 13,
"H": 24,
"BB": 8,
"SO": 17,
"HR": 4,
"ERA": 4.875,
"WHIP": 1.3333333333333333,
"K9": 6.375,
"HR9": 1.5,
"games_pitched": 6,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 6,
"error_prone": false
},
"games_count": 6,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 1.0437133624509811,
"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": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5455,
"prior_weight": 0.4545
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "703615",
"player_name": "Jose Cabrera",
"position": "Starter",
"team": "ARI",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ARI",
"games": 144,
"wins": 76,
"losses": 68,
"win_pct": 0.5278,
"runs_scored": 636.0,
"runs_allowed": 637.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0069,
"avg_runs_scored": 4.4167,
"avg_runs_allowed": 4.4236,
"offense_index": 0.9815,
"defense_index": 1.0173,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.7,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0228
},
"opponent": {
"team": "KC",
"games": 144,
"wins": 64,
"losses": 80,
"win_pct": 0.4444,
"runs_scored": 617.0,
"runs_allowed": 705.0,
"run_differential": -88.0,
"run_differential_per_game": -0.6111,
"avg_runs_scored": 4.2847,
"avg_runs_allowed": 4.8958,
"offense_index": 0.9522,
"defense_index": 0.9191,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.1219
},
"edges": {
"quality_edge": 0.1447,
"offense_edge": -0.0185,
"opponent_offense_edge": -0.0478,
"defense_strength": 0.0173,
"opponent_defense_weakness": 0.0809,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0082,
"run_prevention": 0.9834,
"strikeout": 1.0082
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "703615",
"profile": {
"available": true,
"pitcher_id": "703615",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 81.0,
"k_percent": 16.2,
"bb_percent": 7.6,
"woba": 0.336,
"xwoba": 0.336,
"sweet_spot_percent": 20.8,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 35.1,
"avg_best_speed": 77.3676,
"avg_hyper_speed": 94.1489,
"whiff_percent": 18.8,
"swing_percent": 44.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.204,
"command_and_miss": -0.6079,
"regression_edge": 0.0,
"xwoba_edge": -0.7143,
"barrel_edge": -0.1556,
"hard_hit_edge": 0.4,
"whiff_edge": -0.9,
"bb_edge": 0.4,
"pitch_design_score": -0.0467
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "703615",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 70,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 70,
"pitch_usage": 0.0,
"release_speed": 89.04223045626271,
"release_spin_rate": 2313.681214192303,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 70,
"pitch_usage": 0.0,
"release_speed": 89.04223045626271,
"release_spin_rate": 2313.681214192303,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0422,
"release_spin_rate": 2313.6812,
"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.0467,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3339,
"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.1242,
"sample_weight": 0.45,
"run_prevention_factor": 1.0106,
"strikeout_factor": 0.9689,
"walk_factor": 0.9856,
"homer_factor": 1.008,
"woba_minus_xwoba": 0.0,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "703615",
"espn_id": 5270084,
"player_name": "Jose Cabrera",
"team": "ARI",
"role": "pitcher",
"espn_rank": 429,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 429,
"gp_value": 6.0,
"gp_rank": 604,
"gs_value": 5.0,
"gs_rank": 219,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 4.875,
"era_rank": null,
"w_value": 0.0,
"w_rank": 531,
"l_value": 3.0,
"l_rank": 232,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 24.0,
"ip_rank": 476,
"h_value": 24.0,
"h_rank": 465,
"er_value": 13.0,
"er_rank": 457,
"hr_value": 4.0,
"hr_rank": 369,
"bb_value": 8.0,
"bb_rank": 518,
"k_value": 17.0,
"k_rank": 506,
"k_per_9_value": 6.375,
"k_per_9_rank": 28,
"whip_value": 1.3333,
"whip_rank": null,
"war_value": 0.07,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0048,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0048,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9935,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0036,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.986,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 84,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "WRONG_STARTER",
"severity": "critical",
"title": "Wrong starter identity",
"detail": "The projected MLB player ID differs from the official starter ID; performance errors are not attributable to the projected player."
},
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 6 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "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 -8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260907_ARI@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_ARI@KC | home | Noah Cameron | Noah Cameron | True | 6.0 | 6.0 | 0 | 1 | 0 | -1 | 2/3 | 1/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.082073434125269,
"WHIP": 1.2181425485961122,
"IP": 154.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.667,
"recent_avg_IP": 6.133,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0314,
"sample_weight": 1.0,
"run_prevention_factor": 1.0027,
"strikeout_factor": 1.0051,
"walk_factor": 0.968,
"homer_factor": 1.0171,
"regression_flag": "neutral",
"k_percent": 21.3,
"bb_percent": 7.6,
"woba": 0.301,
"xwoba": 0.311,
"barrel_percent": 7.9,
"hard_hit_percent": 38.4,
"whiff_percent": 26.7
},
"espn_rank": {
"rank": 108,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "702070",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.2,
"ER": 10.0,
"R": 10.0,
"H": 20.0,
"BB": 9.0,
"SO": 22.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 468.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.8,
"SO": 4.4,
"HR": 0.4,
"BF": 24.0,
"Pitches": 93.6
},
"rates": {
"ERA": 2.9348,
"WHIP": 0.9457,
"ER_per_IP": 0.32609,
"H_per_IP": 0.65217,
"BB_per_IP": 0.29348,
"SO_per_IP": 0.71739,
"HR_per_IP": 0.06522
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 65.2,
"ER": 23.0,
"R": 23.0,
"H": 40.0,
"BB": 19.0,
"SO": 56.0,
"HR": 6.0,
"BF": 251.0,
"Pitches": 958.0
},
"per_game": {
"IP": 6.2,
"ER": 2.3,
"R": 2.3,
"H": 4.0,
"BB": 1.9,
"SO": 5.6,
"HR": 0.6,
"BF": 25.1,
"Pitches": 95.8
},
"rates": {
"ERA": 3.1523,
"WHIP": 0.8985,
"ER_per_IP": 0.35025,
"H_per_IP": 0.60914,
"BB_per_IP": 0.28934,
"SO_per_IP": 0.85279,
"HR_per_IP": 0.09137
}
},
"season": {
"games": 27,
"totals": {
"IP": 154.1,
"ER": 70.0,
"R": 75.0,
"H": 139.0,
"BB": 49.0,
"SO": 138.0,
"HR": 16.0,
"BF": 647.0,
"Pitches": 2514.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5926,
"R": 2.7778,
"H": 5.1481,
"BB": 1.8148,
"SO": 5.1111,
"HR": 0.5926,
"BF": 23.963,
"Pitches": 93.1111
},
"rates": {
"ERA": 4.0821,
"WHIP": 1.2181,
"ER_per_IP": 0.45356,
"H_per_IP": 0.90065,
"BB_per_IP": 0.31749,
"SO_per_IP": 0.89417,
"HR_per_IP": 0.10367
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.344,
"predicted_H": 4.492,
"predicted_BB": 1.895,
"predicted_SO": 5.046,
"predicted_HR": 0.566,
"predicted_ERA": 3.4362,
"predicted_WHIP": 1.0401
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 2.344,
"final": 1.7849,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.492,
"final": 3.4553,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.895,
"final": 1.5227,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 5.046,
"final": 4.6109,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.566,
"final": 0.3305,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4362,
"final": 3.4362,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0401,
"final": 1.0401,
"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": 65.2,
"ER": 23,
"H": 40,
"BB": 19,
"SO": 56,
"HR": 6,
"ERA": 3.1522842639593907,
"WHIP": 0.898477157360406,
"K9": 7.6751269035532985,
"HR9": 0.8223350253807106,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.8510151952403202,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "702070",
"player_name": "Noah Cameron",
"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": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 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": 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": 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": "KC",
"games": 144,
"wins": 64,
"losses": 80,
"win_pct": 0.4444,
"runs_scored": 617.0,
"runs_allowed": 705.0,
"run_differential": -88.0,
"run_differential_per_game": -0.6111,
"avg_runs_scored": 4.2847,
"avg_runs_allowed": 4.8958,
"offense_index": 0.9522,
"defense_index": 0.9191,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.2,
"avg_runs_allowed": 4.8,
"run_differential": 4.0
},
"available": true,
"quality_score": -0.1219
},
"opponent": {
"team": "ARI",
"games": 144,
"wins": 76,
"losses": 68,
"win_pct": 0.5278,
"runs_scored": 636.0,
"runs_allowed": 637.0,
"run_differential": -1.0,
"run_differential_per_game": -0.0069,
"avg_runs_scored": 4.4167,
"avg_runs_allowed": 4.4236,
"offense_index": 0.9815,
"defense_index": 1.0173,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.1,
"avg_runs_allowed": 3.7,
"run_differential": -6.0
},
"available": true,
"quality_score": 0.0228
},
"edges": {
"quality_edge": -0.1447,
"offense_edge": -0.0478,
"opponent_offense_edge": -0.0185,
"defense_strength": -0.0809,
"opponent_defense_weakness": -0.0173,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9925,
"run_prevention": 1.0124,
"strikeout": 0.9971
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "702070",
"profile": {
"available": true,
"pitcher_id": "702070",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 575.0,
"k_percent": 21.3,
"bb_percent": 7.6,
"woba": 0.301,
"xwoba": 0.311,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 38.4,
"avg_best_speed": 78.0543,
"avg_hyper_speed": 94.0484,
"whiff_percent": 26.7,
"swing_percent": 47.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0337,
"command_and_miss": 0.115,
"regression_edge": -0.2857,
"xwoba_edge": 0.0,
"barrel_edge": -0.1778,
"hard_hit_edge": -0.0714,
"whiff_edge": 0.2286,
"bb_edge": 0.4,
"pitch_design_score": -0.1735
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "702070",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 107,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 107,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 107,
"pitch_usage": 0.0,
"release_speed": 86.77804095392263,
"release_spin_rate": 2196.6732125022254,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.778,
"release_spin_rate": 2196.6732,
"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.1735,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.2396,
"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.0314,
"sample_weight": 1.0,
"run_prevention_factor": 1.0027,
"strikeout_factor": 1.0051,
"walk_factor": 0.968,
"homer_factor": 1.0171,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "702070",
"espn_id": 4417208,
"player_name": "Noah Cameron",
"team": "KC",
"role": "pitcher",
"espn_rank": 108,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 108,
"gp_value": 27.0,
"gp_rank": 274,
"gs_value": 26.0,
"gs_rank": 45,
"qs_value": 9.0,
"qs_rank": 64,
"era_value": 4.082,
"era_rank": 36.0,
"w_value": 9.0,
"w_rank": 39,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 154.1,
"ip_rank": 34,
"h_value": 139.0,
"h_rank": 34,
"er_value": 70.0,
"er_rank": 25,
"hr_value": 16.0,
"hr_rank": 79,
"bb_value": 49.0,
"bb_rank": 41,
"k_value": 138.0,
"k_rank": 42,
"k_per_9_value": 8.047517,
"k_per_9_rank": 33,
"whip_value": 1.2181,
"whip_rank": 31.0,
"war_value": 1.63,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0027,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0027,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.968,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0171,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0051,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 2,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260907_ARI@KC.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_ATL@PHI | away | Grant Holmes | Grant Holmes | True | 4.2 | 6.0 | 4 | 2 | 0 | -2 | 2/3 | 1/2 | 6/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.770573566084788,
"WHIP": 1.3391521197007483,
"IP": 133.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 4.802,
"recent_avg_IP": 4.733,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3599,
"sample_weight": 1.0,
"run_prevention_factor": 1.0306,
"strikeout_factor": 0.9909,
"walk_factor": 1.012,
"homer_factor": 1.0763,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 9.8,
"woba": 0.312,
"xwoba": 0.333,
"barrel_percent": 8.5,
"hard_hit_percent": 43.6,
"whiff_percent": 27.0
},
"espn_rank": {
"rank": 65,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656550",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 9.0,
"R": 9.0,
"H": 18.0,
"BB": 9.0,
"SO": 12.0,
"HR": 1.0,
"BF": 95.0,
"Pitches": 346.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 1.8,
"H": 3.6,
"BB": 1.8,
"SO": 2.4,
"HR": 0.2,
"BF": 19.0,
"Pitches": 69.2
},
"rates": {
"ERA": 3.4225,
"WHIP": 1.1408,
"ER_per_IP": 0.38028,
"H_per_IP": 0.76056,
"BB_per_IP": 0.38028,
"SO_per_IP": 0.50704,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.1,
"ER": 18.0,
"R": 18.0,
"H": 44.0,
"BB": 17.0,
"SO": 33.0,
"HR": 4.0,
"BF": 205.0,
"Pitches": 742.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 4.4,
"BB": 1.7,
"SO": 3.3,
"HR": 0.4,
"BF": 20.5,
"Pitches": 74.2
},
"rates": {
"ERA": 3.2838,
"WHIP": 1.2365,
"ER_per_IP": 0.36486,
"H_per_IP": 0.89189,
"BB_per_IP": 0.34459,
"SO_per_IP": 0.66892,
"HR_per_IP": 0.08108
}
},
"season": {
"games": 28,
"totals": {
"IP": 133.2,
"ER": 56.0,
"R": 58.0,
"H": 121.0,
"BB": 58.0,
"SO": 106.0,
"HR": 19.0,
"BF": 574.0,
"Pitches": 2136.0
},
"per_game": {
"IP": 4.2,
"ER": 2.0,
"R": 2.0714,
"H": 4.3214,
"BB": 2.0714,
"SO": 3.7857,
"HR": 0.6786,
"BF": 20.5,
"Pitches": 76.2857
},
"rates": {
"ERA": 3.7706,
"WHIP": 1.3392,
"ER_per_IP": 0.41895,
"H_per_IP": 0.90524,
"BB_per_IP": 0.43392,
"SO_per_IP": 0.79302,
"HR_per_IP": 0.14214
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 1.908,
"predicted_H": 4.081,
"predicted_BB": 1.799,
"predicted_SO": 3.189,
"predicted_HR": 0.412,
"predicted_ERA": 3.6027,
"predicted_WHIP": 1.2338
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.908,
"final": 1.9461,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.081,
"final": 3.2194,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.799,
"final": 1.4682,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.189,
"final": 4.3528,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.412,
"final": 0.2414,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6027,
"final": 3.6027,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2338,
"final": 1.2338,
"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": 18,
"H": 44,
"BB": 17,
"SO": 33,
"HR": 4,
"ERA": 3.283783783783784,
"WHIP": 1.2364864864864866,
"K9": 6.020270270270271,
"HR9": 0.7297297297297298,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.8742591244487166,
"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": 2.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656550",
"player_name": "Grant Holmes",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 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.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "ATL",
"games": 143,
"wins": 85,
"losses": 58,
"win_pct": 0.5944,
"runs_scored": 665.0,
"runs_allowed": 545.0,
"run_differential": 120.0,
"run_differential_per_game": 0.8392,
"avg_runs_scored": 4.6503,
"avg_runs_allowed": 3.8112,
"offense_index": 1.0366,
"defense_index": 1.1771,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2531
},
"opponent": {
"team": "PHI",
"games": 143,
"wins": 80,
"losses": 63,
"win_pct": 0.5594,
"runs_scored": 641.0,
"runs_allowed": 607.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2378,
"avg_runs_scored": 4.4825,
"avg_runs_allowed": 4.2448,
"offense_index": 0.9992,
"defense_index": 1.0568,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1496
},
"edges": {
"quality_edge": 0.1035,
"offense_edge": 0.0366,
"opponent_offense_edge": -0.0008,
"defense_strength": 0.1771,
"opponent_defense_weakness": -0.0568,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0095,
"run_prevention": 0.977,
"strikeout": 1.0032
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656550",
"profile": {
"available": true,
"pitcher_id": "656550",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 505.0,
"k_percent": 18.5,
"bb_percent": 9.8,
"woba": 0.312,
"xwoba": 0.333,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 43.6,
"avg_best_speed": 81.6998,
"avg_hyper_speed": 94.669,
"whiff_percent": 27.0,
"swing_percent": 48.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.4577,
"command_and_miss": -0.16,
"regression_edge": -0.6,
"xwoba_edge": -0.6286,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.8143,
"whiff_edge": 0.2714,
"bb_edge": -0.15,
"pitch_design_score": -0.0253
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656550",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 71,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 89.4253815918858,
"release_spin_rate": 2458.5893886602285,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 71,
"pitch_usage": 0.0,
"release_speed": 89.4253815918858,
"release_spin_rate": 2458.5893886602285,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.4254,
"release_spin_rate": 2458.5894,
"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.0253,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.1806,
"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.3599,
"sample_weight": 1.0,
"run_prevention_factor": 1.0306,
"strikeout_factor": 0.9909,
"walk_factor": 1.012,
"homer_factor": 1.0763,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656550",
"espn_id": 33840,
"player_name": "Grant Holmes",
"team": "ATL",
"role": "pitcher",
"espn_rank": 65,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 65,
"gp_value": 27.0,
"gp_rank": 274,
"gs_value": 26.0,
"gs_rank": 45,
"qs_value": 8.0,
"qs_rank": 74,
"era_value": 3.6227,
"era_rank": null,
"w_value": 9.0,
"w_rank": 39,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 131.2,
"ip_rank": 73,
"h_value": 117.0,
"h_rank": 81,
"er_value": 53.0,
"er_rank": 93,
"hr_value": 19.0,
"hr_rank": 45,
"bb_value": 55.0,
"bb_rank": 23,
"k_value": 104.0,
"k_rank": 90,
"k_per_9_value": 7.1088605,
"k_per_9_rank": 33,
"whip_value": 1.3063,
"whip_rank": null,
"war_value": 2.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0306,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 1.0306,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 1.012,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0763,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9909,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 80,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260907_ATL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_ATL@PHI | home | Jesús Luzardo | Jesús Luzardo | True | 6.1 | 9.0 | 8 | 2 | 0 | -2 | 5/2 | 0/1 | 5/12 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0235756385068764,
"WHIP": 1.119842829076621,
"IP": 169.2,
"games_started": null,
"games_pitched": 28,
"role_avg_IP": 6.06,
"recent_avg_IP": 6.6,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7264,
"sample_weight": 1.0,
"run_prevention_factor": 0.9383,
"strikeout_factor": 1.0829,
"walk_factor": 0.962,
"homer_factor": 0.9185,
"regression_flag": "neutral",
"k_percent": 30.0,
"bb_percent": 7.3,
"woba": 0.282,
"xwoba": 0.266,
"barrel_percent": 6.1,
"hard_hit_percent": 33.5,
"whiff_percent": 31.6
},
"espn_rank": {
"rank": 4,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "666200",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.0,
"ER": 6.0,
"R": 8.0,
"H": 23.0,
"BB": 8.0,
"SO": 45.0,
"HR": 3.0,
"BF": 131.0,
"Pitches": 522.0
},
"per_game": {
"IP": 6.2,
"ER": 1.2,
"R": 1.6,
"H": 4.6,
"BB": 1.6,
"SO": 9.0,
"HR": 0.6,
"BF": 26.2,
"Pitches": 104.4
},
"rates": {
"ERA": 1.6364,
"WHIP": 0.9394,
"ER_per_IP": 0.18182,
"H_per_IP": 0.69697,
"BB_per_IP": 0.24242,
"SO_per_IP": 1.36364,
"HR_per_IP": 0.09091
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 66.1,
"ER": 14.0,
"R": 16.0,
"H": 41.0,
"BB": 18.0,
"SO": 84.0,
"HR": 6.0,
"BF": 260.0,
"Pitches": 1011.0
},
"per_game": {
"IP": 6.2,
"ER": 1.4,
"R": 1.6,
"H": 4.1,
"BB": 1.8,
"SO": 8.4,
"HR": 0.6,
"BF": 26.0,
"Pitches": 101.1
},
"rates": {
"ERA": 1.8995,
"WHIP": 0.8894,
"ER_per_IP": 0.21106,
"H_per_IP": 0.61809,
"BB_per_IP": 0.27136,
"SO_per_IP": 1.26633,
"HR_per_IP": 0.09045
}
},
"season": {
"games": 28,
"totals": {
"IP": 169.2,
"ER": 57.0,
"R": 65.0,
"H": 139.0,
"BB": 51.0,
"SO": 209.0,
"HR": 15.0,
"BF": 697.0,
"Pitches": 2751.0
},
"per_game": {
"IP": 6.0,
"ER": 2.0357,
"R": 2.3214,
"H": 4.9643,
"BB": 1.8214,
"SO": 7.4643,
"HR": 0.5357,
"BF": 24.8929,
"Pitches": 98.25
},
"rates": {
"ERA": 3.0236,
"WHIP": 1.1198,
"ER_per_IP": 0.33595,
"H_per_IP": 0.81925,
"BB_per_IP": 0.30059,
"SO_per_IP": 1.23183,
"HR_per_IP": 0.08841
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.2,
"predicted_ER": 1.722,
"predicted_H": 4.787,
"predicted_BB": 1.824,
"predicted_SO": 8.116,
"predicted_HR": 0.642,
"predicted_ERA": 2.3829,
"predicted_WHIP": 1.0166
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.2,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.722,
"final": 1.8371,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 4.787,
"final": 4.8752,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.824,
"final": 1.0688,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 8.116,
"final": 6.4119,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.642,
"final": 0.7902,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3829,
"final": 2.3829,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0166,
"final": 1.0166,
"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": 66.1,
"ER": 14,
"H": 41,
"BB": 18,
"SO": 84,
"HR": 6,
"ERA": 1.8994974874371862,
"WHIP": 0.8894472361809046,
"K9": 11.396984924623116,
"HR9": 0.814070351758794,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.7098509348520847,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.333333333333333,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
}
},
{
"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": 2,
"predicted_H": 5,
"predicted_BB": 0,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 8.0,
"delta": 4.0,
"percent_delta": 1.0,
"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": 0.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.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": 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": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"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": 8.0,
"after": 5.0,
"delta": -3.0,
"percent_delta": -0.375,
"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": 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": 6.3333,
"after": 6.1,
"delta": -0.2333,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 143,
"wins": 80,
"losses": 63,
"win_pct": 0.5594,
"runs_scored": 641.0,
"runs_allowed": 607.0,
"run_differential": 34.0,
"run_differential_per_game": 0.2378,
"avg_runs_scored": 4.4825,
"avg_runs_allowed": 4.2448,
"offense_index": 0.9992,
"defense_index": 1.0568,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 3.9,
"avg_runs_allowed": 2.2,
"run_differential": 17.0
},
"available": true,
"quality_score": 0.1496
},
"opponent": {
"team": "ATL",
"games": 143,
"wins": 85,
"losses": 58,
"win_pct": 0.5944,
"runs_scored": 665.0,
"runs_allowed": 545.0,
"run_differential": 120.0,
"run_differential_per_game": 0.8392,
"avg_runs_scored": 4.6503,
"avg_runs_allowed": 3.8112,
"offense_index": 1.0366,
"defense_index": 1.1771,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.2531
},
"edges": {
"quality_edge": -0.1035,
"offense_edge": -0.0008,
"opponent_offense_edge": 0.0366,
"defense_strength": 0.0568,
"opponent_defense_weakness": -0.1771,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9961,
"run_prevention": 1.0054,
"strikeout": 0.994
},
"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.0,
"bb_percent": 7.3,
"woba": 0.282,
"xwoba": 0.266,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 33.5,
"avg_best_speed": 76.7736,
"avg_hyper_speed": 93.2222,
"whiff_percent": 31.6,
"swing_percent": 46.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7762,
"command_and_miss": 0.9343,
"regression_edge": 0.4571,
"xwoba_edge": 1.2857,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.6286,
"whiff_edge": 0.9286,
"bb_edge": 0.475,
"pitch_design_score": 0.0387
},
"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.0387,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2762,
"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.7264,
"sample_weight": 1.0,
"run_prevention_factor": 0.9383,
"strikeout_factor": 1.0829,
"walk_factor": 0.962,
"homer_factor": 0.9185,
"woba_minus_xwoba": 0.016,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "666200",
"espn_id": 39667,
"player_name": "Jesus Luzardo",
"team": "PHI",
"role": "pitcher",
"espn_rank": 4,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 4,
"gp_value": 28.0,
"gp_rank": 245,
"gs_value": 28.0,
"gs_rank": 16,
"qs_value": 16.0,
"qs_rank": 13,
"era_value": 3.0235,
"era_rank": 13.0,
"w_value": 13.0,
"w_rank": 11,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 169.2,
"ip_rank": 6,
"h_value": 139.0,
"h_rank": 34,
"er_value": 57.0,
"er_rank": 67,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 51.0,
"bb_rank": 32,
"k_value": 209.0,
"k_rank": 5,
"k_per_9_value": 11.086444,
"k_per_9_rank": 22,
"whip_value": 1.1198,
"whip_rank": 17.0,
"war_value": 5.58,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9383,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9383,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9185,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0829,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 98,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by +8 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260907_ATL@PHI.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CHC@MIL | away | Matthew Boyd | Matthew Boyd | True | 5.2 | 7.0 | 4 | 4 | 3 | -1 | 7/5 | 2/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.045602605863192,
"WHIP": 1.231270358306189,
"IP": 102.1,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 5.685,
"recent_avg_IP": 5.933,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.3379,
"sample_weight": 1.0,
"run_prevention_factor": 1.0287,
"strikeout_factor": 0.9657,
"walk_factor": 0.962,
"homer_factor": 1.0667,
"regression_flag": "neutral",
"k_percent": 18.7,
"bb_percent": 7.3,
"woba": 0.317,
"xwoba": 0.337,
"barrel_percent": 9.5,
"hard_hit_percent": 38.2,
"whiff_percent": 22.4
},
"espn_rank": {
"rank": 224,
"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": "571510",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 17.0,
"R": 18.0,
"H": 26.0,
"BB": 11.0,
"SO": 16.0,
"HR": 7.0,
"BF": 121.0,
"Pitches": 472.0
},
"per_game": {
"IP": 6.0,
"ER": 3.4,
"R": 3.6,
"H": 5.2,
"BB": 2.2,
"SO": 3.2,
"HR": 1.4,
"BF": 24.2,
"Pitches": 94.4
},
"rates": {
"ERA": 5.1573,
"WHIP": 1.2472,
"ER_per_IP": 0.57303,
"H_per_IP": 0.8764,
"BB_per_IP": 0.37079,
"SO_per_IP": 0.53933,
"HR_per_IP": 0.23596
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.2,
"ER": 27.0,
"R": 29.0,
"H": 55.0,
"BB": 19.0,
"SO": 35.0,
"HR": 11.0,
"BF": 255.0,
"Pitches": 933.0
},
"per_game": {
"IP": 6.1,
"ER": 2.7,
"R": 2.9,
"H": 5.5,
"BB": 1.9,
"SO": 3.5,
"HR": 1.1,
"BF": 25.5,
"Pitches": 93.3
},
"rates": {
"ERA": 3.8777,
"WHIP": 1.1809,
"ER_per_IP": 0.43085,
"H_per_IP": 0.87766,
"BB_per_IP": 0.30319,
"SO_per_IP": 0.55851,
"HR_per_IP": 0.17553
}
},
"season": {
"games": 18,
"totals": {
"IP": 102.1,
"ER": 46.0,
"R": 49.0,
"H": 95.0,
"BB": 31.0,
"SO": 79.0,
"HR": 15.0,
"BF": 423.0,
"Pitches": 1608.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5556,
"R": 2.7222,
"H": 5.2778,
"BB": 1.7222,
"SO": 4.3889,
"HR": 0.8333,
"BF": 23.5,
"Pitches": 89.3333
},
"rates": {
"ERA": 4.0456,
"WHIP": 1.2313,
"ER_per_IP": 0.44951,
"H_per_IP": 0.92834,
"BB_per_IP": 0.30293,
"SO_per_IP": 0.77199,
"HR_per_IP": 0.14658
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.976,
"predicted_H": 5.405,
"predicted_BB": 2.04,
"predicted_SO": 3.985,
"predicted_HR": 1.11,
"predicted_ERA": 4.4886,
"predicted_WHIP": 1.2478
}
},
"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.2,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.976,
"final": 3.4285,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 5.405,
"final": 6.1098,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.04,
"final": 2.0223,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 3.985,
"final": 3.9916,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 1.11,
"final": 1.0614,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4886,
"final": 4.4886,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2478,
"final": 1.2478,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.2,
"ER": 27,
"H": 55,
"BB": 19,
"SO": 35,
"HR": 11,
"ERA": 3.877659574468085,
"WHIP": 1.1808510638297873,
"K9": 5.026595744680852,
"HR9": 1.5797872340425532,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.9396792653342829,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 2.0,
"predicted_SO": 4.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
}
}
],
"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": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 144,
"wins": 81,
"losses": 63,
"win_pct": 0.5625,
"runs_scored": 768.0,
"runs_allowed": 636.0,
"run_differential": 132.0,
"run_differential_per_game": 0.9167,
"avg_runs_scored": 5.3333,
"avg_runs_allowed": 4.4167,
"offense_index": 1.1889,
"defense_index": 1.0157,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 7.3,
"avg_runs_allowed": 6.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1655
},
"opponent": {
"team": "MIL",
"games": 144,
"wins": 88,
"losses": 56,
"win_pct": 0.6111,
"runs_scored": 726.0,
"runs_allowed": 558.0,
"run_differential": 168.0,
"run_differential_per_game": 1.1667,
"avg_runs_scored": 5.0417,
"avg_runs_allowed": 3.875,
"offense_index": 1.1239,
"defense_index": 1.1577,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 6.3,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.2375
},
"edges": {
"quality_edge": -0.072,
"offense_edge": 0.1889,
"opponent_offense_edge": 0.1239,
"defense_strength": 0.0157,
"opponent_defense_weakness": -0.1577,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9926,
"run_prevention": 1.0219,
"strikeout": 0.9879
},
"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.7,
"bb_percent": 7.3,
"woba": 0.317,
"xwoba": 0.337,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 9.5,
"hard_hit_percent": 38.2,
"avg_best_speed": 76.0878,
"avg_hyper_speed": 94.0382,
"whiff_percent": 22.4,
"swing_percent": 48.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3473,
"command_and_miss": -0.2521,
"regression_edge": -0.5714,
"xwoba_edge": -0.7429,
"barrel_edge": -0.5333,
"hard_hit_edge": -0.0429,
"whiff_edge": -0.3857,
"bb_edge": 0.475,
"pitch_design_score": -0.2589
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 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": 95,
"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.2589,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.8491,
"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.3379,
"sample_weight": 1.0,
"run_prevention_factor": 1.0287,
"strikeout_factor": 0.9657,
"walk_factor": 0.962,
"homer_factor": 1.0667,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "571510",
"espn_id": 34401,
"player_name": "Matthew Boyd",
"team": "CHC",
"role": "pitcher",
"espn_rank": 224,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 224,
"gp_value": 18.0,
"gp_rank": 409,
"gs_value": 18.0,
"gs_rank": 112,
"qs_value": 7.0,
"qs_rank": 79,
"era_value": 4.0456,
"era_rank": null,
"w_value": 8.0,
"w_rank": 63,
"l_value": 3.0,
"l_rank": 232,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 102.1,
"ip_rank": 116,
"h_value": 95.0,
"h_rank": 120,
"er_value": 46.0,
"er_rank": 121,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 31.0,
"bb_rank": 152,
"k_value": 79.0,
"k_rank": 153,
"k_per_9_value": 6.947883,
"k_per_9_rank": 35,
"whip_value": 1.2312,
"whip_rank": null,
"war_value": 0.67,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0287,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0287,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0667,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9657,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 26,
"Pitches": 112,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"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/20260907_CHC@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CHC@MIL | home | Robert Gasser | Robert Gasser | True | 5.0 | 4.2 | -1 | 4 | 1 | -3 | 5/3 | 0/2 | 5/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.569230769230769,
"WHIP": 1.2923076923076922,
"IP": 86.2,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 5.083,
"recent_avg_IP": 4.8,
"last_start_IP": 4.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0208,
"sample_weight": 1.0,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9829,
"walk_factor": 0.954,
"homer_factor": 0.9631,
"regression_flag": "neutral",
"k_percent": 21.8,
"bb_percent": 6.9,
"woba": 0.328,
"xwoba": 0.314,
"barrel_percent": 6.2,
"hard_hit_percent": 33.8,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 292,
"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": "688107",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.1,
"ER": 13.0,
"R": 14.0,
"H": 28.0,
"BB": 11.0,
"SO": 24.0,
"HR": 2.0,
"BF": 114.0,
"Pitches": 431.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.8,
"H": 5.6,
"BB": 2.2,
"SO": 4.8,
"HR": 0.4,
"BF": 22.8,
"Pitches": 86.2
},
"rates": {
"ERA": 4.8082,
"WHIP": 1.6027,
"ER_per_IP": 0.53425,
"H_per_IP": 1.15068,
"BB_per_IP": 0.45205,
"SO_per_IP": 0.9863,
"HR_per_IP": 0.08219
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.0,
"ER": 26.0,
"R": 27.0,
"H": 52.0,
"BB": 14.0,
"SO": 46.0,
"HR": 6.0,
"BF": 223.0,
"Pitches": 822.0
},
"per_game": {
"IP": 5.0,
"ER": 2.6,
"R": 2.7,
"H": 5.2,
"BB": 1.4,
"SO": 4.6,
"HR": 0.6,
"BF": 22.3,
"Pitches": 82.2
},
"rates": {
"ERA": 4.5882,
"WHIP": 1.2941,
"ER_per_IP": 0.5098,
"H_per_IP": 1.01961,
"BB_per_IP": 0.27451,
"SO_per_IP": 0.90196,
"HR_per_IP": 0.11765
}
},
"season": {
"games": 17,
"totals": {
"IP": 86.2,
"ER": 44.0,
"R": 46.0,
"H": 85.0,
"BB": 27.0,
"SO": 82.0,
"HR": 13.0,
"BF": 377.0,
"Pitches": 1451.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5882,
"R": 2.7059,
"H": 5.0,
"BB": 1.5882,
"SO": 4.8235,
"HR": 0.7647,
"BF": 22.1765,
"Pitches": 85.3529
},
"rates": {
"ERA": 4.5692,
"WHIP": 1.2923,
"ER_per_IP": 0.50769,
"H_per_IP": 0.98077,
"BB_per_IP": 0.31154,
"SO_per_IP": 0.94615,
"HR_per_IP": 0.15
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.578,
"predicted_H": 5.243,
"predicted_BB": 1.821,
"predicted_SO": 4.733,
"predicted_HR": 0.584,
"predicted_ERA": 4.6403,
"predicted_WHIP": 1.4127
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.446,
"form_weight": 0.554,
"form_reliability": 0.7727,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7727,
"prior_weight": 0.2273
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.578,
"final": 3.2123,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.243,
"final": 5.1346,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.821,
"final": 1.0088,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.733,
"final": 4.8521,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.584,
"final": 0.7696,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6403,
"final": 4.6403,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4127,
"final": 1.4127,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 51.0,
"ER": 26,
"H": 52,
"BB": 14,
"SO": 46,
"HR": 6,
"ERA": 4.588235294117648,
"WHIP": 1.2941176470588238,
"K9": 8.11764705882353,
"HR9": 1.058823529411765,
"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-09-01T00:00:00"
},
"recent_form_boost": 1.0224506983755846,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_BB": 0.0,
"predicted_SO": 5.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": "688107",
"player_name": "Robert Gasser",
"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": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 4.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "MIL",
"games": 144,
"wins": 88,
"losses": 56,
"win_pct": 0.6111,
"runs_scored": 726.0,
"runs_allowed": 558.0,
"run_differential": 168.0,
"run_differential_per_game": 1.1667,
"avg_runs_scored": 5.0417,
"avg_runs_allowed": 3.875,
"offense_index": 1.1239,
"defense_index": 1.1577,
"current_streak": "L2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.8,
"avg_runs_allowed": 6.3,
"run_differential": -5.0
},
"available": true,
"quality_score": 0.2375
},
"opponent": {
"team": "CHC",
"games": 144,
"wins": 81,
"losses": 63,
"win_pct": 0.5625,
"runs_scored": 768.0,
"runs_allowed": 636.0,
"run_differential": 132.0,
"run_differential_per_game": 0.9167,
"avg_runs_scored": 5.3333,
"avg_runs_allowed": 4.4167,
"offense_index": 1.1889,
"defense_index": 1.0157,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 7.3,
"avg_runs_allowed": 6.0,
"run_differential": 13.0
},
"available": true,
"quality_score": 0.1655
},
"edges": {
"quality_edge": 0.072,
"offense_edge": 0.1239,
"opponent_offense_edge": 0.1889,
"defense_strength": 0.1577,
"opponent_defense_weakness": -0.0157,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0001,
"run_prevention": 1.0109,
"strikeout": 0.987
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "688107",
"profile": {
"available": true,
"pitcher_id": "688107",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 312.0,
"k_percent": 21.8,
"bb_percent": 6.9,
"woba": 0.328,
"xwoba": 0.314,
"sweet_spot_percent": 37.7,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 33.8,
"avg_best_speed": 75.0827,
"avg_hyper_speed": 93.0791,
"whiff_percent": 22.3,
"swing_percent": 49.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0026,
"command_and_miss": -0.0379,
"regression_edge": 0.4,
"xwoba_edge": -0.0857,
"barrel_edge": 0.2,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.4,
"bb_edge": 0.575,
"pitch_design_score": -0.0991
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "688107",
"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": 88.10672773196258,
"release_spin_rate": 2274.4345249885405,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 88.10672773196258,
"release_spin_rate": 2274.4345249885405,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1067,
"release_spin_rate": 2274.4345,
"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.0991,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.7081,
"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.0208,
"sample_weight": 1.0,
"run_prevention_factor": 0.9982,
"strikeout_factor": 0.9829,
"walk_factor": 0.954,
"homer_factor": 0.9631,
"woba_minus_xwoba": 0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "688107",
"espn_id": 4918251,
"player_name": "Robert Gasser",
"team": "MIL",
"role": "pitcher",
"espn_rank": 292,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 292,
"gp_value": 17.0,
"gp_rank": 424,
"gs_value": 16.0,
"gs_rank": 128,
"qs_value": 4.0,
"qs_rank": 122,
"era_value": 4.5692,
"era_rank": null,
"w_value": 4.0,
"w_rank": 184,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 86.2,
"ip_rank": 143,
"h_value": 85.0,
"h_rank": 129,
"er_value": 44.0,
"er_rank": 132,
"hr_value": 13.0,
"hr_rank": 117,
"bb_value": 27.0,
"bb_rank": 190,
"k_value": 82.0,
"k_rank": 145,
"k_per_9_value": 8.515385,
"k_per_9_rank": 27,
"whip_value": 1.2923,
"whip_rank": null,
"war_value": 0.34,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9982,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9982,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9631,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9829,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 5,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 78,
"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/20260907_CHC@MIL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CIN@LAD | away | Chase Burns | Chase Burns | True | 5.2 | 3.0 | -8 | 3 | 0 | -3 | 5/0 | 3/1 | 8/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.786697247706422,
"WHIP": 1.1559633027522935,
"IP": 145.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.59,
"recent_avg_IP": 5.333,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4689,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.076,
"walk_factor": 0.984,
"homer_factor": 0.9903,
"regression_flag": "neutral",
"k_percent": 28.9,
"bb_percent": 8.4,
"woba": 0.286,
"xwoba": 0.279,
"barrel_percent": 8.0,
"hard_hit_percent": 38.2,
"whiff_percent": 31.5
},
"espn_rank": {
"rank": 10,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.2,
"season_IP": 145.1,
"season_ERA": 2.787,
"season_WHIP": 1.156,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695505",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 14.0,
"R": 15.0,
"H": 31.0,
"BB": 7.0,
"SO": 34.0,
"HR": 2.0,
"BF": 115.0,
"Pitches": 457.0
},
"per_game": {
"IP": 5.1,
"ER": 2.8,
"R": 3.0,
"H": 6.2,
"BB": 1.4,
"SO": 6.8,
"HR": 0.4,
"BF": 23.0,
"Pitches": 91.4
},
"rates": {
"ERA": 4.725,
"WHIP": 1.425,
"ER_per_IP": 0.525,
"H_per_IP": 1.1625,
"BB_per_IP": 0.2625,
"SO_per_IP": 1.275,
"HR_per_IP": 0.075
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 53.2,
"ER": 21.0,
"R": 26.0,
"H": 48.0,
"BB": 21.0,
"SO": 59.0,
"HR": 4.0,
"BF": 225.0,
"Pitches": 920.0
},
"per_game": {
"IP": 5.1,
"ER": 2.1,
"R": 2.6,
"H": 4.8,
"BB": 2.1,
"SO": 5.9,
"HR": 0.4,
"BF": 22.5,
"Pitches": 92.0
},
"rates": {
"ERA": 3.5217,
"WHIP": 1.2857,
"ER_per_IP": 0.3913,
"H_per_IP": 0.89441,
"BB_per_IP": 0.3913,
"SO_per_IP": 1.09938,
"HR_per_IP": 0.07453
}
},
"season": {
"games": 26,
"totals": {
"IP": 145.1,
"ER": 45.0,
"R": 50.0,
"H": 118.0,
"BB": 50.0,
"SO": 171.0,
"HR": 15.0,
"BF": 592.0,
"Pitches": 2402.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7308,
"R": 1.9231,
"H": 4.5385,
"BB": 1.9231,
"SO": 6.5769,
"HR": 0.5769,
"BF": 22.7692,
"Pitches": 92.3846
},
"rates": {
"ERA": 2.7867,
"WHIP": 1.156,
"ER_per_IP": 0.30963,
"H_per_IP": 0.81193,
"BB_per_IP": 0.34404,
"SO_per_IP": 1.17661,
"HR_per_IP": 0.10321
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.425,
"predicted_H": 5.412,
"predicted_BB": 1.805,
"predicted_SO": 6.274,
"predicted_HR": 0.496,
"predicted_ERA": 4.0094,
"predicted_WHIP": 1.3261
}
},
"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.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.425,
"final": 2.2473,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.412,
"final": 5.2397,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.805,
"final": 2.3047,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.274,
"final": 6.5776,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.496,
"final": 0.2886,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0094,
"final": 4.0094,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3261,
"final": 1.3261,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 47.2,
"ER": 19,
"H": 44,
"BB": 19,
"SO": 55,
"HR": 3,
"ERA": 3.587412587412587,
"WHIP": 1.3216783216783214,
"K9": 10.384615384615383,
"HR9": 0.5664335664335663,
"games_pitched": 9,
"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-30T00:00:00"
},
"recent_form_boost": 0.9105471607367528,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695505",
"player_name": "Chase Burns",
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"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": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 7.0,
"after": 8.0,
"delta": 1.0,
"percent_delta": 0.1429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CIN",
"games": 143,
"wins": 69,
"losses": 74,
"win_pct": 0.4825,
"runs_scored": 605.0,
"runs_allowed": 710.0,
"run_differential": -105.0,
"run_differential_per_game": -0.7343,
"avg_runs_scored": 4.2308,
"avg_runs_allowed": 4.965,
"offense_index": 0.9419,
"defense_index": 0.9046,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.7,
"avg_runs_allowed": 7.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0348
},
"opponent": {
"team": "LAD",
"games": 143,
"wins": 86,
"losses": 57,
"win_pct": 0.6014,
"runs_scored": 705.0,
"runs_allowed": 553.0,
"run_differential": 152.0,
"run_differential_per_game": 1.0629,
"avg_runs_scored": 4.9301,
"avg_runs_allowed": 3.8671,
"offense_index": 1.0976,
"defense_index": 1.1615,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.1,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.2513
},
"edges": {
"quality_edge": -0.2861,
"offense_edge": -0.0581,
"opponent_offense_edge": 0.0976,
"defense_strength": -0.0954,
"opponent_defense_weakness": -0.1615,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9818,
"run_prevention": 1.0395,
"strikeout": 0.9836
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695505",
"profile": {
"available": true,
"pitcher_id": "695505",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 540.0,
"k_percent": 28.9,
"bb_percent": 8.4,
"woba": 0.286,
"xwoba": 0.279,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 38.2,
"avg_best_speed": 79.5887,
"avg_hyper_speed": 93.7919,
"whiff_percent": 31.5,
"swing_percent": 49.4
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3926,
"command_and_miss": 0.8036,
"regression_edge": 0.2,
"xwoba_edge": 0.9143,
"barrel_edge": -0.2,
"hard_hit_edge": -0.0429,
"whiff_edge": 0.9143,
"bb_edge": 0.2,
"pitch_design_score": 0.2513
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "695505",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 95,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 94.36490843177926,
"release_spin_rate": 2642.6191277414805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 95,
"pitch_usage": 0.0,
"release_speed": 94.36490843177926,
"release_spin_rate": 2642.6191277414805,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3649,
"release_spin_rate": 2642.6191,
"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.2513,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.7952,
"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.4689,
"sample_weight": 1.0,
"run_prevention_factor": 0.9601,
"strikeout_factor": 1.076,
"walk_factor": 0.984,
"homer_factor": 0.9903,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "695505",
"espn_id": 4927516,
"player_name": "Chase Burns",
"team": "CIN",
"role": "pitcher",
"espn_rank": 10,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 10,
"gp_value": 26.0,
"gp_rank": 297,
"gs_value": 26.0,
"gs_rank": 45,
"qs_value": 11.0,
"qs_rank": 45,
"era_value": 2.7866,
"era_rank": 10.0,
"w_value": 15.0,
"w_rank": 3,
"l_value": 3.0,
"l_rank": 232,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 145.1,
"ip_rank": 47,
"h_value": 118.0,
"h_rank": 80,
"er_value": 45.0,
"er_rank": 125,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 50.0,
"bb_rank": 38,
"k_value": 171.0,
"k_rank": 17,
"k_per_9_value": 10.58945,
"k_per_9_rank": 9,
"whip_value": 1.1559,
"whip_rank": 22.0,
"war_value": 4.75,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9601,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9601,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.984,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9903,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.076,
"adjusted": 8
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 27,
"Pitches": 110,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -8 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was -5."
},
{
"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/20260907_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CIN@LAD | home | Emmet Sheehan | Emmet Sheehan | True | 5.0 | 5.2 | 2 | 2 | 1 | -1 | 4/3 | 1/1 | 5/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.286713286713287,
"WHIP": 1.2902097902097902,
"IP": 95.1,
"games_started": null,
"games_pitched": 20,
"role_avg_IP": 4.767,
"recent_avg_IP": 4.533,
"last_start_IP": 2.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1156,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 1.0566,
"walk_factor": 0.962,
"homer_factor": 1.0647,
"regression_flag": "positive_pitcher_regression",
"k_percent": 26.2,
"bb_percent": 7.3,
"woba": 0.346,
"xwoba": 0.308,
"barrel_percent": 10.5,
"hard_hit_percent": 39.1,
"whiff_percent": 30.8
},
"espn_rank": {
"rank": 668,
"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": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "686218",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 20,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 15.0,
"R": 16.0,
"H": 23.0,
"BB": 8.0,
"SO": 27.0,
"HR": 5.0,
"BF": 102.0,
"Pitches": 429.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 4.6,
"BB": 1.6,
"SO": 5.4,
"HR": 1.0,
"BF": 20.4,
"Pitches": 85.8
},
"rates": {
"ERA": 5.9559,
"WHIP": 1.3676,
"ER_per_IP": 0.66176,
"H_per_IP": 1.01471,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.19118,
"HR_per_IP": 0.22059
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 43.2,
"ER": 29.0,
"R": 30.0,
"H": 43.0,
"BB": 16.0,
"SO": 49.0,
"HR": 11.0,
"BF": 195.0,
"Pitches": 821.0
},
"per_game": {
"IP": 4.1,
"ER": 2.9,
"R": 3.0,
"H": 4.3,
"BB": 1.6,
"SO": 4.9,
"HR": 1.1,
"BF": 19.5,
"Pitches": 82.1
},
"rates": {
"ERA": 5.9771,
"WHIP": 1.3511,
"ER_per_IP": 0.66412,
"H_per_IP": 0.98473,
"BB_per_IP": 0.36641,
"SO_per_IP": 1.12214,
"HR_per_IP": 0.25191
}
},
"season": {
"games": 20,
"totals": {
"IP": 95.1,
"ER": 56.0,
"R": 57.0,
"H": 93.0,
"BB": 30.0,
"SO": 108.0,
"HR": 20.0,
"BF": 412.0,
"Pitches": 1698.0
},
"per_game": {
"IP": 4.2,
"ER": 2.8,
"R": 2.85,
"H": 4.65,
"BB": 1.5,
"SO": 5.4,
"HR": 1.0,
"BF": 20.6,
"Pitches": 84.9
},
"rates": {
"ERA": 5.2867,
"WHIP": 1.2902,
"ER_per_IP": 0.58741,
"H_per_IP": 0.97552,
"BB_per_IP": 0.31469,
"SO_per_IP": 1.13287,
"HR_per_IP": 0.20979
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.826,
"predicted_H": 4.535,
"predicted_BB": 1.621,
"predicted_SO": 5.086,
"predicted_HR": 0.973,
"predicted_ERA": 5.5624,
"predicted_WHIP": 1.346
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4345,
"form_weight": 0.5655,
"form_reliability": 0.8,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.826,
"final": 2.4671,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 4.535,
"final": 4.3025,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.621,
"final": 1.3512,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.086,
"final": 5.0486,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.973,
"final": 0.9847,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.5624,
"final": 5.5624,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.346,
"final": 1.346,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 43.2,
"ER": 29,
"H": 43,
"BB": 16,
"SO": 49,
"HR": 11,
"ERA": 5.97709923664122,
"WHIP": 1.3511450381679388,
"K9": 10.099236641221372,
"HR9": 2.2671755725190836,
"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-02T00:00:00"
},
"recent_form_boost": 1.1801235766872145,
"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": 4.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 20.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8,
"prior_weight": 0.2
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "686218",
"player_name": "Emmet Sheehan",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 4.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 5.0,
"delta": 0.3333,
"percent_delta": 0.0714,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 143,
"wins": 86,
"losses": 57,
"win_pct": 0.6014,
"runs_scored": 705.0,
"runs_allowed": 553.0,
"run_differential": 152.0,
"run_differential_per_game": 1.0629,
"avg_runs_scored": 4.9301,
"avg_runs_allowed": 3.8671,
"offense_index": 1.0976,
"defense_index": 1.1615,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 4.1,
"run_differential": 3.0
},
"available": true,
"quality_score": 0.2513
},
"opponent": {
"team": "CIN",
"games": 143,
"wins": 69,
"losses": 74,
"win_pct": 0.4825,
"runs_scored": 605.0,
"runs_allowed": 710.0,
"run_differential": -105.0,
"run_differential_per_game": -0.7343,
"avg_runs_scored": 4.2308,
"avg_runs_allowed": 4.965,
"offense_index": 0.9419,
"defense_index": 0.9046,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.7,
"avg_runs_allowed": 7.1,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0348
},
"edges": {
"quality_edge": 0.2861,
"offense_edge": 0.0976,
"opponent_offense_edge": -0.0581,
"defense_strength": 0.1615,
"opponent_defense_weakness": 0.0954,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0186,
"run_prevention": 0.9602,
"strikeout": 1.0132
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "686218",
"profile": {
"available": true,
"pitcher_id": "686218",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 394.0,
"k_percent": 26.2,
"bb_percent": 7.3,
"woba": 0.346,
"xwoba": 0.308,
"sweet_spot_percent": 36.1,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 39.1,
"avg_best_speed": 78.0621,
"avg_hyper_speed": 94.013,
"whiff_percent": 30.8,
"swing_percent": 50.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.2808,
"command_and_miss": 0.65,
"regression_edge": 1.0857,
"xwoba_edge": 0.0857,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.1714,
"whiff_edge": 0.8143,
"bb_edge": 0.475,
"pitch_design_score": -0.0587
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "686218",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 88.82797631633119,
"release_spin_rate": 2255.2077831234624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 88.82797631633119,
"release_spin_rate": 2255.2077831234624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.828,
"release_spin_rate": 2255.2078,
"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.0587,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4196,
"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.1156,
"sample_weight": 1.0,
"run_prevention_factor": 0.9902,
"strikeout_factor": 1.0566,
"walk_factor": 0.962,
"homer_factor": 1.0647,
"woba_minus_xwoba": 0.038,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "686218",
"espn_id": 4417806,
"player_name": "Emmet Sheehan",
"team": "LAD",
"role": "pitcher",
"espn_rank": 668,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 668,
"gp_value": 20.0,
"gp_rank": 388,
"gs_value": 20.0,
"gs_rank": 97,
"qs_value": 5.0,
"qs_rank": 109,
"era_value": 5.2867,
"era_rank": null,
"w_value": 4.0,
"w_rank": 184,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 95.1,
"ip_rank": 130,
"h_value": 93.0,
"h_rank": 123,
"er_value": 56.0,
"er_rank": 73,
"hr_value": 20.0,
"hr_rank": 35,
"bb_value": 30.0,
"bb_rank": 160,
"k_value": 108.0,
"k_rank": 87,
"k_per_9_value": 10.195805,
"k_per_9_rank": 18,
"whip_value": 1.2902,
"whip_rank": null,
"war_value": -0.21,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9902,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 0.9902,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.962,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0647,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0566,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 20,
"Pitches": 83,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260907_CIN@LAD.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CLE@BAL | away | Joey Cantillo | Joey Cantillo | True | 4.2 | 2.1 | -7 | 2 | 4 | 2 | 2/3 | 0/5 | 6/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.811764705882353,
"WHIP": 1.4752941176470589,
"IP": 141.2,
"games_started": null,
"games_pitched": 29,
"role_avg_IP": 4.885,
"recent_avg_IP": 4.6,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0741,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0406,
"walk_factor": 1.05,
"homer_factor": 1.0184,
"regression_flag": "neutral",
"k_percent": 24.5,
"bb_percent": 11.7,
"woba": 0.333,
"xwoba": 0.31,
"barrel_percent": 7.7,
"hard_hit_percent": 39.4,
"whiff_percent": 29.7
},
"espn_rank": {
"rank": 198,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676282",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 29,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.0,
"ER": 9.0,
"R": 15.0,
"H": 19.0,
"BB": 16.0,
"SO": 22.0,
"HR": 1.0,
"BF": 101.0,
"Pitches": 401.0
},
"per_game": {
"IP": 4.2,
"ER": 1.8,
"R": 3.0,
"H": 3.8,
"BB": 3.2,
"SO": 4.4,
"HR": 0.2,
"BF": 20.2,
"Pitches": 80.2
},
"rates": {
"ERA": 3.5217,
"WHIP": 1.5217,
"ER_per_IP": 0.3913,
"H_per_IP": 0.82609,
"BB_per_IP": 0.69565,
"SO_per_IP": 0.95652,
"HR_per_IP": 0.04348
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 45.2,
"ER": 21.0,
"R": 30.0,
"H": 51.0,
"BB": 25.0,
"SO": 55.0,
"HR": 4.0,
"BF": 209.0,
"Pitches": 810.0
},
"per_game": {
"IP": 4.2,
"ER": 2.1,
"R": 3.0,
"H": 5.1,
"BB": 2.5,
"SO": 5.5,
"HR": 0.4,
"BF": 20.9,
"Pitches": 81.0
},
"rates": {
"ERA": 4.1387,
"WHIP": 1.6642,
"ER_per_IP": 0.45985,
"H_per_IP": 1.11679,
"BB_per_IP": 0.54745,
"SO_per_IP": 1.20438,
"HR_per_IP": 0.08759
}
},
"season": {
"games": 29,
"totals": {
"IP": 141.2,
"ER": 60.0,
"R": 75.0,
"H": 137.0,
"BB": 72.0,
"SO": 151.0,
"HR": 16.0,
"BF": 617.0,
"Pitches": 2459.0
},
"per_game": {
"IP": 5.0,
"ER": 2.069,
"R": 2.5862,
"H": 4.7241,
"BB": 2.4828,
"SO": 5.2069,
"HR": 0.5517,
"BF": 21.2759,
"Pitches": 84.7931
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.4753,
"ER_per_IP": 0.42353,
"H_per_IP": 0.96706,
"BB_per_IP": 0.50824,
"SO_per_IP": 1.06588,
"HR_per_IP": 0.11294
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.046,
"predicted_H": 4.527,
"predicted_BB": 2.701,
"predicted_SO": 4.944,
"predicted_HR": 0.395,
"predicted_ERA": 3.8984,
"predicted_WHIP": 1.5303
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4121,
"form_weight": 0.5879,
"form_reliability": 0.8529,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
},
"applied_metrics": {
"predicted_IP": {
"model": 4.2,
"form": 4.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.046,
"final": 2.027,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 4.527,
"final": 3.4855,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.701,
"final": 1.5878,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 4.944,
"final": 5.3792,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.395,
"final": 0.6444,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.8984,
"final": 3.8984,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5303,
"final": 1.5303,
"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": 21,
"H": 51,
"BB": 25,
"SO": 55,
"HR": 4,
"ERA": 4.138686131386861,
"WHIP": 1.664233576642336,
"K9": 10.83941605839416,
"HR9": 0.7883211678832117,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 2,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.9811293158079589,
"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": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 6.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 29.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8529,
"prior_weight": 0.1471
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "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": 4.6667,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"predicted_R": 2.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 144,
"wins": 73,
"losses": 71,
"win_pct": 0.5069,
"runs_scored": 580.0,
"runs_allowed": 594.0,
"run_differential": -14.0,
"run_differential_per_game": -0.0972,
"avg_runs_scored": 4.0278,
"avg_runs_allowed": 4.125,
"offense_index": 0.8978,
"defense_index": 1.0875,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.7,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0061
},
"opponent": {
"team": "BAL",
"games": 144,
"wins": 69,
"losses": 75,
"win_pct": 0.4792,
"runs_scored": 641.0,
"runs_allowed": 670.0,
"run_differential": -29.0,
"run_differential_per_game": -0.2014,
"avg_runs_scored": 4.4514,
"avg_runs_allowed": 4.6528,
"offense_index": 0.9923,
"defense_index": 0.9642,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.7,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0774
},
"edges": {
"quality_edge": 0.0713,
"offense_edge": -0.1022,
"opponent_offense_edge": -0.0077,
"defense_strength": 0.0875,
"opponent_defense_weakness": 0.0358,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0058,
"run_prevention": 0.9865,
"strikeout": 1.0028
},
"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": 24.5,
"bb_percent": 11.7,
"woba": 0.333,
"xwoba": 0.31,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 39.4,
"avg_best_speed": 76.8797,
"avg_hyper_speed": 93.8951,
"whiff_percent": 29.7,
"swing_percent": 44.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.069,
"command_and_miss": 0.2657,
"regression_edge": 0.6571,
"xwoba_edge": 0.0286,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.6571,
"bb_edge": -0.625,
"pitch_design_score": -0.2755
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676282",
"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": 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": 66,
"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.2755,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9677,
"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.0741,
"sample_weight": 1.0,
"run_prevention_factor": 0.9937,
"strikeout_factor": 1.0406,
"walk_factor": 1.05,
"homer_factor": 1.0184,
"woba_minus_xwoba": 0.023,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "676282",
"espn_id": 42488,
"player_name": "Joey Cantillo",
"team": "CLE",
"role": "pitcher",
"espn_rank": 198,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 198,
"gp_value": 29.0,
"gp_rank": 223,
"gs_value": 29.0,
"gs_rank": 4,
"qs_value": 6.0,
"qs_rank": 91,
"era_value": 3.8117,
"era_rank": null,
"w_value": 9.0,
"w_rank": 39,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 141.2,
"ip_rank": 52,
"h_value": 137.0,
"h_rank": 37,
"er_value": 60.0,
"er_rank": 62,
"hr_value": 16.0,
"hr_rank": 79,
"bb_value": 72.0,
"bb_rank": 2,
"k_value": 151.0,
"k_rank": 29,
"k_per_9_value": 9.592941,
"k_per_9_rank": 15,
"whip_value": 1.4752,
"whip_rank": null,
"war_value": 0.91,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9937,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9937,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.05,
"adjusted": 3
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0184,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0406,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 2,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 6,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 16,
"Pitches": 77,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -7 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +5."
}
],
"provenance": {
"prediction": "output/games/20260907_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_CLE@BAL | home | Trevor Rogers | Trevor Rogers | True | 5.2 | 7.1 | 5 | 3 | 1 | -2 | 6/6 | 3/0 | 3/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.302540415704388,
"WHIP": 1.233256351039261,
"IP": 144.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.551,
"recent_avg_IP": 5.733,
"last_start_IP": 6.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.1413,
"sample_weight": 1.0,
"run_prevention_factor": 0.988,
"strikeout_factor": 0.9914,
"walk_factor": 0.938,
"homer_factor": 0.9882,
"regression_flag": "neutral",
"k_percent": 21.9,
"bb_percent": 6.1,
"woba": 0.309,
"xwoba": 0.3,
"barrel_percent": 7.0,
"hard_hit_percent": 37.8,
"whiff_percent": 23.7
},
"espn_rank": {
"rank": 134,
"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": "669432",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 15.0,
"R": 15.0,
"H": 30.0,
"BB": 5.0,
"SO": 34.0,
"HR": 5.0,
"BF": 119.0,
"Pitches": 460.0
},
"per_game": {
"IP": 5.2,
"ER": 3.0,
"R": 3.0,
"H": 6.0,
"BB": 1.0,
"SO": 6.8,
"HR": 1.0,
"BF": 23.8,
"Pitches": 92.0
},
"rates": {
"ERA": 4.7093,
"WHIP": 1.2209,
"ER_per_IP": 0.52326,
"H_per_IP": 1.04651,
"BB_per_IP": 0.17442,
"SO_per_IP": 1.18605,
"HR_per_IP": 0.17442
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.0,
"ER": 25.0,
"R": 28.0,
"H": 59.0,
"BB": 8.0,
"SO": 67.0,
"HR": 7.0,
"BF": 244.0,
"Pitches": 923.0
},
"per_game": {
"IP": 6.0,
"ER": 2.5,
"R": 2.8,
"H": 5.9,
"BB": 0.8,
"SO": 6.7,
"HR": 0.7,
"BF": 24.4,
"Pitches": 92.3
},
"rates": {
"ERA": 3.75,
"WHIP": 1.1167,
"ER_per_IP": 0.41667,
"H_per_IP": 0.98333,
"BB_per_IP": 0.13333,
"SO_per_IP": 1.11667,
"HR_per_IP": 0.11667
}
},
"season": {
"games": 26,
"totals": {
"IP": 144.1,
"ER": 69.0,
"R": 74.0,
"H": 141.0,
"BB": 37.0,
"SO": 132.0,
"HR": 16.0,
"BF": 603.0,
"Pitches": 2336.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6538,
"R": 2.8462,
"H": 5.4231,
"BB": 1.4231,
"SO": 5.0769,
"HR": 0.6154,
"BF": 23.1923,
"Pitches": 89.8462
},
"rates": {
"ERA": 4.3025,
"WHIP": 1.2333,
"ER_per_IP": 0.47806,
"H_per_IP": 0.97691,
"BB_per_IP": 0.25635,
"SO_per_IP": 0.91455,
"HR_per_IP": 0.11085
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.77,
"predicted_H": 5.79,
"predicted_BB": 1.199,
"predicted_SO": 6.227,
"predicted_HR": 0.82,
"predicted_ERA": 4.3247,
"predicted_WHIP": 1.2124
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.77,
"final": 2.8662,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.79,
"final": 5.8778,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.199,
"final": 1.9521,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 6.227,
"final": 4.0413,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.82,
"final": 0.8953,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3247,
"final": 4.3247,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2124,
"final": 1.2124,
"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": 25,
"H": 59,
"BB": 8,
"SO": 67,
"HR": 7,
"ERA": 3.7499999999999996,
"WHIP": 1.1166666666666665,
"K9": 10.049999999999999,
"HR9": 1.0499999999999998,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.9237129532775452,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_BB": 3.0,
"predicted_SO": 1.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": "669432",
"player_name": "Trevor Rogers",
"position": "Starter",
"team": "BAL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"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": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.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": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BAL",
"games": 144,
"wins": 69,
"losses": 75,
"win_pct": 0.4792,
"runs_scored": 641.0,
"runs_allowed": 670.0,
"run_differential": -29.0,
"run_differential_per_game": -0.2014,
"avg_runs_scored": 4.4514,
"avg_runs_allowed": 4.6528,
"offense_index": 0.9923,
"defense_index": 0.9642,
"current_streak": "L6",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.7,
"run_differential": -5.0
},
"available": true,
"quality_score": -0.0774
},
"opponent": {
"team": "CLE",
"games": 144,
"wins": 73,
"losses": 71,
"win_pct": 0.5069,
"runs_scored": 580.0,
"runs_allowed": 594.0,
"run_differential": -14.0,
"run_differential_per_game": -0.0972,
"avg_runs_scored": 4.0278,
"avg_runs_allowed": 4.125,
"offense_index": 0.8978,
"defense_index": 1.0875,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.7,
"avg_runs_allowed": 4.7,
"run_differential": -10.0
},
"available": true,
"quality_score": -0.0061
},
"edges": {
"quality_edge": -0.0713,
"offense_edge": -0.0077,
"opponent_offense_edge": -0.1022,
"defense_strength": -0.0358,
"opponent_defense_weakness": -0.0875,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0002,
"run_prevention": 0.9908,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669432",
"profile": {
"available": true,
"pitcher_id": "669432",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 525.0,
"k_percent": 21.9,
"bb_percent": 6.1,
"woba": 0.309,
"xwoba": 0.3,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 37.8,
"avg_best_speed": 77.5404,
"avg_hyper_speed": 93.9147,
"whiff_percent": 23.7,
"swing_percent": 52.7
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.1756,
"command_and_miss": 0.0786,
"regression_edge": 0.2571,
"xwoba_edge": 0.3143,
"barrel_edge": 0.0222,
"hard_hit_edge": 0.0143,
"whiff_edge": -0.2,
"bb_edge": 0.775,
"pitch_design_score": -0.039
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669432",
"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.18055651401573,
"release_spin_rate": 2193.8218174875824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.18055651401573,
"release_spin_rate": 2193.8218174875824,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1806,
"release_spin_rate": 2193.8218,
"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.039,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2785,
"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.1413,
"sample_weight": 1.0,
"run_prevention_factor": 0.988,
"strikeout_factor": 0.9914,
"walk_factor": 0.938,
"homer_factor": 0.9882,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "669432",
"espn_id": 39640,
"player_name": "Trevor Rogers",
"team": "BAL",
"role": "pitcher",
"espn_rank": 134,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 134,
"gp_value": 26.0,
"gp_rank": 297,
"gs_value": 26.0,
"gs_rank": 45,
"qs_value": 13.0,
"qs_rank": 28,
"era_value": 4.3025,
"era_rank": 42.0,
"w_value": 9.0,
"w_rank": 39,
"l_value": 9.0,
"l_rank": 28,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 144.1,
"ip_rank": 49,
"h_value": 141.0,
"h_rank": 29,
"er_value": 69.0,
"er_rank": 32,
"hr_value": 16.0,
"hr_rank": 79,
"bb_value": 37.0,
"bb_rank": 104,
"k_value": 132.0,
"k_rank": 51,
"k_per_9_value": 8.230947,
"k_per_9_rank": 28,
"whip_value": 1.2332,
"whip_rank": 32.0,
"war_value": 1.34,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.988,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.988,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9882,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 0.9914,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 6,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 3,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 113,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260907_CLE@BAL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_LAA@BOS | away | Grayson Rodriguez | Grayson Rodriguez | True | 5.0 | 4.0 | -3 | 3 | 5 | 2 | 4/6 | 0/4 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 6.0257510729613735,
"WHIP": 1.5193133047210299,
"IP": 77.2,
"games_started": null,
"games_pitched": 16,
"role_avg_IP": 4.854,
"recent_avg_IP": 5.333,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5603,
"sample_weight": 1.0,
"run_prevention_factor": 1.0476,
"strikeout_factor": 0.9857,
"walk_factor": 1.006,
"homer_factor": 1.1237,
"regression_flag": "neutral",
"k_percent": 20.7,
"bb_percent": 9.5,
"woba": 0.362,
"xwoba": 0.353,
"barrel_percent": 9.3,
"hard_hit_percent": 46.4,
"whiff_percent": 23.9
},
"espn_rank": {
"rank": 834,
"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": "680570",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 16,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 26.2,
"ER": 11.0,
"R": 14.0,
"H": 26.0,
"BB": 11.0,
"SO": 30.0,
"HR": 3.0,
"BF": 114.0,
"Pitches": 465.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2,
"R": 2.8,
"H": 5.2,
"BB": 2.2,
"SO": 6.0,
"HR": 0.6,
"BF": 22.8,
"Pitches": 93.0
},
"rates": {
"ERA": 3.7125,
"WHIP": 1.3875,
"ER_per_IP": 0.4125,
"H_per_IP": 0.975,
"BB_per_IP": 0.4125,
"SO_per_IP": 1.125,
"HR_per_IP": 0.1125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 29.0,
"R": 32.0,
"H": 53.0,
"BB": 18.0,
"SO": 48.0,
"HR": 8.0,
"BF": 225.0,
"Pitches": 907.0
},
"per_game": {
"IP": 5.1,
"ER": 2.9,
"R": 3.2,
"H": 5.3,
"BB": 1.8,
"SO": 4.8,
"HR": 0.8,
"BF": 22.5,
"Pitches": 90.7
},
"rates": {
"ERA": 5.0192,
"WHIP": 1.3654,
"ER_per_IP": 0.55769,
"H_per_IP": 1.01923,
"BB_per_IP": 0.34615,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.15385
}
},
"season": {
"games": 16,
"totals": {
"IP": 77.2,
"ER": 52.0,
"R": 57.0,
"H": 85.0,
"BB": 33.0,
"SO": 72.0,
"HR": 12.0,
"BF": 348.0,
"Pitches": 1401.0
},
"per_game": {
"IP": 5.0,
"ER": 3.25,
"R": 3.5625,
"H": 5.3125,
"BB": 2.0625,
"SO": 4.5,
"HR": 0.75,
"BF": 21.75,
"Pitches": 87.5625
},
"rates": {
"ERA": 6.0258,
"WHIP": 1.5193,
"ER_per_IP": 0.66953,
"H_per_IP": 1.09442,
"BB_per_IP": 0.42489,
"SO_per_IP": 0.92704,
"HR_per_IP": 0.15451
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.659,
"predicted_H": 5.226,
"predicted_BB": 2.014,
"predicted_SO": 5.186,
"predicted_HR": 0.718,
"predicted_ERA": 4.5995,
"predicted_WHIP": 1.3915
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4506,
"form_weight": 0.5494,
"form_reliability": 0.7619,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 2.659,
"final": 2.3621,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.226,
"final": 4.223,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 2.014,
"final": 1.1065,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.186,
"final": 5.1022,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.718,
"final": 1.2957,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5995,
"final": 4.5995,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3915,
"final": 1.3915,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 29,
"H": 53,
"BB": 18,
"SO": 48,
"HR": 8,
"ERA": 5.019230769230768,
"WHIP": 1.3653846153846152,
"K9": 8.307692307692307,
"HR9": 1.3846153846153844,
"games_pitched": 10,
"quality_starts": 2,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.0727193635339554,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7619,
"prior_weight": 0.2381
}
},
{
"step": "starter_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 3,
"predicted_H": 4,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2
}
}
],
"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": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.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_quality_floor",
"description": "Weak starter floor restored expected damage from recent form instead of assigning it to zero-inning bullpen rows.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.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": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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.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": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 3.0,
"predicted_H": 4.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 3.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": 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": 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.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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.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": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 2.0,
"after": 3.0,
"delta": 1.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAA",
"games": 143,
"wins": 54,
"losses": 89,
"win_pct": 0.3776,
"runs_scored": 577.0,
"runs_allowed": 654.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5385,
"avg_runs_scored": 4.035,
"avg_runs_allowed": 4.5734,
"offense_index": 0.8994,
"defense_index": 0.9809,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2751
},
"opponent": {
"team": "BOS",
"games": 144,
"wins": 79,
"losses": 65,
"win_pct": 0.5486,
"runs_scored": 642.0,
"runs_allowed": 556.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5972,
"avg_runs_scored": 4.4583,
"avg_runs_allowed": 3.8611,
"offense_index": 0.9938,
"defense_index": 1.1619,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.6,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.1495
},
"edges": {
"quality_edge": -0.4246,
"offense_edge": -0.1006,
"opponent_offense_edge": -0.0062,
"defense_strength": -0.0191,
"opponent_defense_weakness": -0.1619,
"recent_win_pct_edge": -0.4
},
"player_factors": {
"ip": 0.9827,
"run_prevention": 1.0221,
"strikeout": 0.9878
},
"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.7,
"bb_percent": 9.5,
"woba": 0.362,
"xwoba": 0.353,
"sweet_spot_percent": 36.7,
"barrel_batted_rate": 9.3,
"hard_hit_percent": 46.4,
"avg_best_speed": 80.3996,
"avg_hyper_speed": 95.0662,
"whiff_percent": 23.9,
"swing_percent": 49.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.973,
"command_and_miss": -0.1586,
"regression_edge": 0.2571,
"xwoba_edge": -1.2,
"barrel_edge": -0.4889,
"hard_hit_edge": -1.2143,
"whiff_edge": -0.1714,
"bb_edge": -0.075,
"pitch_design_score": 0.0018
},
"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.0018,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0132,
"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.5603,
"sample_weight": 1.0,
"run_prevention_factor": 1.0476,
"strikeout_factor": 0.9857,
"walk_factor": 1.006,
"homer_factor": 1.1237,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "680570",
"espn_id": 41196,
"player_name": "Grayson Rodriguez",
"team": "LAA",
"role": "pitcher",
"espn_rank": 834,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 834,
"gp_value": 16.0,
"gp_rank": 442,
"gs_value": 16.0,
"gs_rank": 128,
"qs_value": 2.0,
"qs_rank": 157,
"era_value": 6.0257,
"era_rank": null,
"w_value": 4.0,
"w_rank": 184,
"l_value": 6.0,
"l_rank": 108,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 77.2,
"ip_rank": 164,
"h_value": 85.0,
"h_rank": 129,
"er_value": 52.0,
"er_rank": 95,
"hr_value": 12.0,
"hr_rank": 128,
"bb_value": 33.0,
"bb_rank": 133,
"k_value": 72.0,
"k_rank": 168,
"k_per_9_value": 8.343348,
"k_per_9_rank": 27,
"whip_value": 1.5193,
"whip_rank": null,
"war_value": -0.93,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0476,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0476,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.006,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1237,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9857,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 4,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 0,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 86,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +4."
}
],
"provenance": {
"prediction": "output/games/20260907_LAA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_LAA@BOS | home | Brayan Bello | Brayan Bello | True | 4.1 | 5.0 | 2 | 2 | 0 | -2 | 4/4 | 2/2 | 4/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.068259385665529,
"WHIP": 1.4641638225255973,
"IP": 97.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 4.458,
"recent_avg_IP": 4.2,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5001,
"sample_weight": 1.0,
"run_prevention_factor": 1.0425,
"strikeout_factor": 0.9611,
"walk_factor": 0.968,
"homer_factor": 1.0672,
"regression_flag": "neutral",
"k_percent": 16.2,
"bb_percent": 7.6,
"woba": 0.335,
"xwoba": 0.355,
"barrel_percent": 7.7,
"hard_hit_percent": 41.2,
"whiff_percent": 24.1
},
"espn_rank": {
"rank": 801,
"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": "678394",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 18.0,
"ER": 11.0,
"R": 11.0,
"H": 20.0,
"BB": 6.0,
"SO": 10.0,
"HR": 0.0,
"BF": 81.0,
"Pitches": 332.0
},
"per_game": {
"IP": 3.2,
"ER": 2.2,
"R": 2.2,
"H": 4.0,
"BB": 1.2,
"SO": 2.0,
"HR": 0.0,
"BF": 16.2,
"Pitches": 66.4
},
"rates": {
"ERA": 5.5,
"WHIP": 1.4444,
"ER_per_IP": 0.61111,
"H_per_IP": 1.11111,
"BB_per_IP": 0.33333,
"SO_per_IP": 0.55556,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 36.2,
"ER": 12.0,
"R": 13.0,
"H": 32.0,
"BB": 9.0,
"SO": 26.0,
"HR": 1.0,
"BF": 150.0,
"Pitches": 586.0
},
"per_game": {
"IP": 3.2,
"ER": 1.2,
"R": 1.3,
"H": 3.2,
"BB": 0.9,
"SO": 2.6,
"HR": 0.1,
"BF": 15.0,
"Pitches": 58.6
},
"rates": {
"ERA": 2.9455,
"WHIP": 1.1182,
"ER_per_IP": 0.32727,
"H_per_IP": 0.87273,
"BB_per_IP": 0.24545,
"SO_per_IP": 0.70909,
"HR_per_IP": 0.02727
}
},
"season": {
"games": 22,
"totals": {
"IP": 97.2,
"ER": 55.0,
"R": 60.0,
"H": 110.0,
"BB": 33.0,
"SO": 70.0,
"HR": 11.0,
"BF": 432.0,
"Pitches": 1633.0
},
"per_game": {
"IP": 4.1,
"ER": 2.5,
"R": 2.7273,
"H": 5.0,
"BB": 1.5,
"SO": 3.1818,
"HR": 0.5,
"BF": 19.6364,
"Pitches": 74.2273
},
"rates": {
"ERA": 5.0683,
"WHIP": 1.4642,
"ER_per_IP": 0.56314,
"H_per_IP": 1.12628,
"BB_per_IP": 0.33788,
"SO_per_IP": 0.71672,
"HR_per_IP": 0.11263
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.0,
"predicted_ER": 1.956,
"predicted_H": 3.977,
"predicted_BB": 1.233,
"predicted_SO": 2.716,
"predicted_HR": 0.208,
"predicted_ERA": 4.5148,
"predicted_WHIP": 1.3362
}
},
"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": 4.1,
"form": 4.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.956,
"final": 1.9748,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.977,
"final": 3.9868,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.233,
"final": 1.5615,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 2.716,
"final": 3.2659,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.208,
"final": 0.5472,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5148,
"final": 4.5148,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3362,
"final": 1.3362,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 36.2,
"ER": 12,
"H": 32,
"BB": 9,
"SO": 26,
"HR": 1,
"ERA": 2.945454545454545,
"WHIP": 1.118181818181818,
"K9": 6.381818181818181,
"HR9": 0.24545454545454543,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.8332394684290604,
"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": 4.0,
"predicted_BB": 2.0,
"predicted_SO": 4.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "678394",
"player_name": "Brayan Bello",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.3333,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 4.1,
"predicted_R": 2.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"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.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"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.3333,
"after": 4.1,
"delta": -0.2333,
"percent_delta": -0.0538,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 144,
"wins": 79,
"losses": 65,
"win_pct": 0.5486,
"runs_scored": 642.0,
"runs_allowed": 556.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5972,
"avg_runs_scored": 4.4583,
"avg_runs_allowed": 3.8611,
"offense_index": 0.9938,
"defense_index": 1.1619,
"current_streak": "W4",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 4.2,
"avg_runs_allowed": 5.6,
"run_differential": -14.0
},
"available": true,
"quality_score": 0.1495
},
"opponent": {
"team": "LAA",
"games": 143,
"wins": 54,
"losses": 89,
"win_pct": 0.3776,
"runs_scored": 577.0,
"runs_allowed": 654.0,
"run_differential": -77.0,
"run_differential_per_game": -0.5385,
"avg_runs_scored": 4.035,
"avg_runs_allowed": 4.5734,
"offense_index": 0.8994,
"defense_index": 0.9809,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 2,
"losses": 8,
"win_pct": 0.2,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 3.5,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2751
},
"edges": {
"quality_edge": 0.4246,
"offense_edge": -0.0062,
"opponent_offense_edge": -0.1006,
"defense_strength": 0.1619,
"opponent_defense_weakness": 0.0191,
"recent_win_pct_edge": 0.4
},
"player_factors": {
"ip": 1.0259,
"run_prevention": 0.9465,
"strikeout": 1.0208
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "678394",
"profile": {
"available": true,
"pitcher_id": "678394",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 382.0,
"k_percent": 16.2,
"bb_percent": 7.6,
"woba": 0.335,
"xwoba": 0.355,
"sweet_spot_percent": 32.8,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 41.2,
"avg_best_speed": 77.9687,
"avg_hyper_speed": 94.8279,
"whiff_percent": 24.1,
"swing_percent": 49.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.6417,
"command_and_miss": -0.3429,
"regression_edge": -0.5714,
"xwoba_edge": -1.2571,
"barrel_edge": -0.1333,
"hard_hit_edge": -0.4714,
"whiff_edge": -0.1429,
"bb_edge": 0.4,
"pitch_design_score": 0.0699
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "678394",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 53,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 53,
"pitch_usage": 0.0,
"release_speed": 91.12459672478103,
"release_spin_rate": 2068.0313686386917,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 53,
"pitch_usage": 0.0,
"release_speed": 91.12459672478103,
"release_spin_rate": 2068.0313686386917,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1246,
"release_spin_rate": 2068.0314,
"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.0699,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4991,
"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.5001,
"sample_weight": 1.0,
"run_prevention_factor": 1.0425,
"strikeout_factor": 0.9611,
"walk_factor": 0.968,
"homer_factor": 1.0672,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "678394",
"espn_id": 4720856,
"player_name": "Brayan Bello",
"team": "BOS",
"role": "pitcher",
"espn_rank": 801,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 801,
"gp_value": 22.0,
"gp_rank": 358,
"gs_value": 8.0,
"gs_rank": 185,
"qs_value": 1.0,
"qs_rank": 176,
"era_value": 5.0682,
"era_rank": null,
"w_value": 5.0,
"w_rank": 142,
"l_value": 7.0,
"l_rank": 84,
"sv_value": 1.0,
"sv_rank": 137,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 97.2,
"ip_rank": 125,
"h_value": 110.0,
"h_rank": 97,
"er_value": 55.0,
"er_rank": 82,
"hr_value": 11.0,
"hr_rank": 143,
"bb_value": 33.0,
"bb_rank": 133,
"k_value": 70.0,
"k_rank": 172,
"k_per_9_value": 6.4505124,
"k_per_9_rank": 37,
"whip_value": 1.4641,
"whip_rank": null,
"war_value": -0.63,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 6.0,
"factor": 1.0425,
"adjusted": 6
},
"predicted_H": {
"original": 8.0,
"factor": 1.0425,
"adjusted": 8
},
"predicted_BB": {
"original": 3.0,
"factor": 0.968,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0672,
"adjusted": 1
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9611,
"adjusted": 3
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.1,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 4,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 75,
"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/20260907_LAA@BOS.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260907 | 20260907_MIN@DET | away | Joe Ryan | Joe Ryan | True | 5.2 | 4.0 | -5 | 4 | 2 | -2 | 7/3 | 1/1 | 6/7 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.6525198938992043,
"WHIP": 1.1379310344827587,
"IP": 125.2,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 5.464,
"recent_avg_IP": 5.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2029,
"sample_weight": 1.0,
"run_prevention_factor": 0.9828,
"strikeout_factor": 1.0274,
"walk_factor": 0.92,
"homer_factor": 1.067,
"regression_flag": "neutral",
"k_percent": 26.4,
"bb_percent": 5.2,
"woba": 0.299,
"xwoba": 0.29,
"barrel_percent": 10.5,
"hard_hit_percent": 42.2,
"whiff_percent": 25.5
},
"espn_rank": {
"rank": 79,
"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": "657746",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 18.0,
"R": 19.0,
"H": 34.0,
"BB": 5.0,
"SO": 25.0,
"HR": 7.0,
"BF": 123.0,
"Pitches": 470.0
},
"per_game": {
"IP": 5.2,
"ER": 3.6,
"R": 3.8,
"H": 6.8,
"BB": 1.0,
"SO": 5.0,
"HR": 1.4,
"BF": 24.6,
"Pitches": 94.0
},
"rates": {
"ERA": 5.7176,
"WHIP": 1.3765,
"ER_per_IP": 0.63529,
"H_per_IP": 1.2,
"BB_per_IP": 0.17647,
"SO_per_IP": 0.88235,
"HR_per_IP": 0.24706
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.1,
"ER": 26.0,
"R": 33.0,
"H": 62.0,
"BB": 13.0,
"SO": 59.0,
"HR": 11.0,
"BF": 241.0,
"Pitches": 960.0
},
"per_game": {
"IP": 5.2,
"ER": 2.6,
"R": 3.3,
"H": 6.2,
"BB": 1.3,
"SO": 5.9,
"HR": 1.1,
"BF": 24.1,
"Pitches": 96.0
},
"rates": {
"ERA": 4.2289,
"WHIP": 1.3554,
"ER_per_IP": 0.46988,
"H_per_IP": 1.12048,
"BB_per_IP": 0.23494,
"SO_per_IP": 1.06627,
"HR_per_IP": 0.1988
}
},
"season": {
"games": 23,
"totals": {
"IP": 125.2,
"ER": 51.0,
"R": 63.0,
"H": 116.0,
"BB": 27.0,
"SO": 138.0,
"HR": 17.0,
"BF": 523.0,
"Pitches": 2089.0
},
"per_game": {
"IP": 5.1,
"ER": 2.2174,
"R": 2.7391,
"H": 5.0435,
"BB": 1.1739,
"SO": 6.0,
"HR": 0.7391,
"BF": 22.7391,
"Pitches": 90.8261
},
"rates": {
"ERA": 3.6525,
"WHIP": 1.1379,
"ER_per_IP": 0.40584,
"H_per_IP": 0.92308,
"BB_per_IP": 0.21485,
"SO_per_IP": 1.09814,
"HR_per_IP": 0.13528
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.951,
"predicted_H": 6.123,
"predicted_BB": 1.316,
"predicted_SO": 5.504,
"predicted_HR": 1.105,
"predicted_ERA": 4.7318,
"predicted_WHIP": 1.3256
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.951,
"final": 3.3973,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 6.123,
"final": 6.4961,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.316,
"final": 1.1816,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 5.504,
"final": 5.715,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.105,
"final": 0.6349,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.7318,
"final": 4.7318,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3256,
"final": 1.3256,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.1,
"ER": 26,
"H": 62,
"BB": 13,
"SO": 59,
"HR": 11,
"ERA": 4.228915662650603,
"WHIP": 1.3554216867469882,
"K9": 9.596385542168676,
"HR9": 1.7891566265060241,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-04T00:00:00"
},
"recent_form_boost": 0.9835598408277462,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "657746",
"player_name": "Joe Ryan",
"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": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 4.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 4.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": "MIN",
"games": 143,
"wins": 68,
"losses": 75,
"win_pct": 0.4755,
"runs_scored": 666.0,
"runs_allowed": 714.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3357,
"avg_runs_scored": 4.6573,
"avg_runs_allowed": 4.993,
"offense_index": 1.0378,
"defense_index": 0.8988,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.0,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.097
},
"opponent": {
"team": "DET",
"games": 143,
"wins": 65,
"losses": 78,
"win_pct": 0.4545,
"runs_scored": 627.0,
"runs_allowed": 577.0,
"run_differential": 50.0,
"run_differential_per_game": 0.3497,
"avg_runs_scored": 4.3846,
"avg_runs_allowed": 4.035,
"offense_index": 0.977,
"defense_index": 1.1122,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.5,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0658
},
"edges": {
"quality_edge": -0.0312,
"offense_edge": 0.0378,
"opponent_offense_edge": -0.023,
"defense_strength": -0.1012,
"opponent_defense_weakness": -0.1122,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9966,
"run_prevention": 1.008,
"strikeout": 1.0009
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "657746",
"profile": {
"available": true,
"pitcher_id": "657746",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 476.0,
"k_percent": 26.4,
"bb_percent": 5.2,
"woba": 0.299,
"xwoba": 0.29,
"sweet_spot_percent": 34.8,
"barrel_batted_rate": 10.5,
"hard_hit_percent": 42.2,
"avg_best_speed": 79.0089,
"avg_hyper_speed": 94.4483,
"whiff_percent": 25.5,
"swing_percent": 50.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0924,
"command_and_miss": 0.5029,
"regression_edge": 0.2571,
"xwoba_edge": 0.6,
"barrel_edge": -0.7556,
"hard_hit_edge": -0.6143,
"whiff_edge": 0.0571,
"bb_edge": 1.0,
"pitch_design_score": -0.0658
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657746",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.70279077172188,
"release_spin_rate": 2379.4293929584433,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 88.70279077172188,
"release_spin_rate": 2379.4293929584433,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.7028,
"release_spin_rate": 2379.4294,
"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.0658,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4697,
"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.2029,
"sample_weight": 1.0,
"run_prevention_factor": 0.9828,
"strikeout_factor": 1.0274,
"walk_factor": 0.92,
"homer_factor": 1.067,
"woba_minus_xwoba": 0.009,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657746",
"espn_id": 42450,
"player_name": "Joe Ryan",
"team": "MIN",
"role": "pitcher",
"espn_rank": 79,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 79,
"gp_value": 23.0,
"gp_rank": 344,
"gs_value": 23.0,
"gs_rank": 78,
"qs_value": 11.0,
"qs_rank": 45,
"era_value": 3.6525,
"era_rank": null,
"w_value": 6.0,
"w_rank": 102,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 125.2,
"ip_rank": 86,
"h_value": 116.0,
"h_rank": 84,
"er_value": 51.0,
"er_rank": 100,
"hr_value": 17.0,
"hr_rank": 65,
"bb_value": 27.0,
"bb_rank": 190,
"k_value": 138.0,
"k_rank": 42,
"k_per_9_value": 9.883289,
"k_per_9_rank": 13,
"whip_value": 1.1379,
"whip_rank": null,
"war_value": 1.96,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9828,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9828,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.92,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.067,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0274,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 7,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 26,
"Pitches": 108,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was -2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260907_MIN@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"
}
} |
| 20260907 | 20260907_MIN@DET | home | Troy Melton | Troy Melton | True | 6.0 | 5.2 | -1 | 2 | 4 | 2 | 3/7 | 2/1 | 5/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.198697068403909,
"WHIP": 1.0260586319218241,
"IP": 102.1,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 6.02,
"recent_avg_IP": 5.667,
"last_start_IP": 5.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.2037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9827,
"strikeout_factor": 0.9886,
"walk_factor": 0.958,
"homer_factor": 0.97,
"regression_flag": "neutral",
"k_percent": 20.6,
"bb_percent": 7.1,
"woba": 0.279,
"xwoba": 0.293,
"barrel_percent": 6.6,
"hard_hit_percent": 36.9,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 29,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 6.0,
"season_IP": 102.1,
"season_ERA": 2.199,
"season_WHIP": 1.026,
"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": 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": "675512",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 12.0,
"R": 17.0,
"H": 32.0,
"BB": 6.0,
"SO": 20.0,
"HR": 4.0,
"BF": 122.0,
"Pitches": 453.0
},
"per_game": {
"IP": 5.2,
"ER": 2.4,
"R": 3.4,
"H": 6.4,
"BB": 1.2,
"SO": 4.0,
"HR": 0.8,
"BF": 24.4,
"Pitches": 90.6
},
"rates": {
"ERA": 3.8118,
"WHIP": 1.3412,
"ER_per_IP": 0.42353,
"H_per_IP": 1.12941,
"BB_per_IP": 0.21176,
"SO_per_IP": 0.70588,
"HR_per_IP": 0.14118
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 58.1,
"ER": 15.0,
"R": 21.0,
"H": 51.0,
"BB": 19.0,
"SO": 52.0,
"HR": 5.0,
"BF": 240.0,
"Pitches": 917.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 2.1,
"H": 5.1,
"BB": 1.9,
"SO": 5.2,
"HR": 0.5,
"BF": 24.0,
"Pitches": 91.7
},
"rates": {
"ERA": 2.3143,
"WHIP": 1.2,
"ER_per_IP": 0.25714,
"H_per_IP": 0.87429,
"BB_per_IP": 0.32571,
"SO_per_IP": 0.89143,
"HR_per_IP": 0.08571
}
},
"season": {
"games": 17,
"totals": {
"IP": 102.1,
"ER": 25.0,
"R": 31.0,
"H": 76.0,
"BB": 29.0,
"SO": 84.0,
"HR": 12.0,
"BF": 407.0,
"Pitches": 1523.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4706,
"R": 1.8235,
"H": 4.4706,
"BB": 1.7059,
"SO": 4.9412,
"HR": 0.7059,
"BF": 23.9412,
"Pitches": 89.5882
},
"rates": {
"ERA": 2.1987,
"WHIP": 1.0261,
"ER_per_IP": 0.2443,
"H_per_IP": 0.74267,
"BB_per_IP": 0.28339,
"SO_per_IP": 0.82085,
"HR_per_IP": 0.11726
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.166,
"predicted_H": 5.678,
"predicted_BB": 1.707,
"predicted_SO": 4.865,
"predicted_HR": 0.728,
"predicted_ERA": 3.3126,
"predicted_WHIP": 1.2551
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.166,
"final": 3.4301,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.678,
"final": 5.8216,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.707,
"final": 1.8377,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.865,
"final": 4.0331,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.728,
"final": 0.8493,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.3126,
"final": 3.3126,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2551,
"final": 1.2551,
"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": 15,
"H": 51,
"BB": 19,
"SO": 52,
"HR": 5,
"ERA": 2.3142857142857145,
"WHIP": 1.2000000000000002,
"K9": 8.022857142857143,
"HR9": 0.7714285714285715,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 0.7642784294680216,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 3.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
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 6,
"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": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 6.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": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"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": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 3.0,
"delta": -3.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 5.0,
"after": 2.0,
"delta": -3.0,
"percent_delta": -0.6,
"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": 143,
"wins": 65,
"losses": 78,
"win_pct": 0.4545,
"runs_scored": 627.0,
"runs_allowed": 577.0,
"run_differential": 50.0,
"run_differential_per_game": 0.3497,
"avg_runs_scored": 4.3846,
"avg_runs_allowed": 4.035,
"offense_index": 0.977,
"defense_index": 1.1122,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 3,
"losses": 7,
"win_pct": 0.3,
"avg_runs_scored": 3.5,
"avg_runs_allowed": 5.5,
"run_differential": -20.0
},
"available": true,
"quality_score": -0.0658
},
"opponent": {
"team": "MIN",
"games": 143,
"wins": 68,
"losses": 75,
"win_pct": 0.4755,
"runs_scored": 666.0,
"runs_allowed": 714.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3357,
"avg_runs_scored": 4.6573,
"avg_runs_allowed": 4.993,
"offense_index": 1.0378,
"defense_index": 0.8988,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.5,
"avg_runs_allowed": 5.0,
"run_differential": 5.0
},
"available": true,
"quality_score": -0.097
},
"edges": {
"quality_edge": 0.0312,
"offense_edge": -0.023,
"opponent_offense_edge": 0.0378,
"defense_strength": 0.1122,
"opponent_defense_weakness": 0.1012,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0031,
"run_prevention": 0.9933,
"strikeout": 0.9979
},
"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": 20.6,
"bb_percent": 7.1,
"woba": 0.279,
"xwoba": 0.293,
"sweet_spot_percent": 29.3,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 36.9,
"avg_best_speed": 78.4019,
"avg_hyper_speed": 93.7207,
"whiff_percent": 24.5,
"swing_percent": 50.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4272,
"command_and_miss": -0.015,
"regression_edge": -0.4,
"xwoba_edge": 0.5143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.1429,
"whiff_edge": -0.0857,
"bb_edge": 0.525,
"pitch_design_score": 0.1048
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "675512",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 91.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": 92,
"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.1048,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.7482,
"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.2037,
"sample_weight": 1.0,
"run_prevention_factor": 0.9827,
"strikeout_factor": 0.9886,
"walk_factor": 0.958,
"homer_factor": 0.97,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "675512",
"espn_id": 5294127,
"player_name": "Troy Melton",
"team": "DET",
"role": "pitcher",
"espn_rank": 29,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 29,
"gp_value": 17.0,
"gp_rank": 424,
"gs_value": 17.0,
"gs_rank": 118,
"qs_value": 9.0,
"qs_rank": 64,
"era_value": 2.1986,
"era_rank": null,
"w_value": 7.0,
"w_rank": 82,
"l_value": 4.0,
"l_rank": 179,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 102.1,
"ip_rank": 116,
"h_value": 76.0,
"h_rank": 153,
"er_value": 25.0,
"er_rank": 236,
"hr_value": 12.0,
"hr_rank": 128,
"bb_value": 29.0,
"bb_rank": 171,
"k_value": 84.0,
"k_rank": 140,
"k_per_9_value": 7.3876224,
"k_per_9_rank": 32,
"whip_value": 1.026,
"whip_rank": null,
"war_value": 3.2,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9827,
"adjusted": 2
},
"predicted_H": {
"original": 6.0,
"factor": 0.9827,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.958,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.97,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9886,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was +4."
},
{
"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/20260907_MIN@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"
}
} |
| 20260907 | 20260907_NYM@MIA | away | Jonah Tong | Jonah Tong | True | 3.1 | 5.0 | 5 | 3 | 4 | 1 | 8/4 | 1/1 | 5/7 | Last 10 before this game (3 available){
"model_context": {
"embedded_season": {
"ERA": 3.6,
"WHIP": 1.5,
"IP": 10.0,
"games_started": null,
"games_pitched": 3,
"role_avg_IP": 3.333,
"recent_avg_IP": 3.333,
"last_start_IP": 3.1,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0686,
"sample_weight": 0.45,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9774,
"walk_factor": 1.0513,
"homer_factor": 0.9717,
"regression_flag": "neutral",
"k_percent": 14.9,
"bb_percent": 14.9,
"woba": 0.28,
"xwoba": 0.309,
"barrel_percent": 6.1,
"hard_hit_percent": 30.3,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 553,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 1.0
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "804636",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 3,
"reference_playing_time": 4.0,
"windows": {
"last_5": {
"games": 3,
"totals": {
"IP": 10.0,
"ER": 4.0,
"R": 6.0,
"H": 8.0,
"BB": 7.0,
"SO": 7.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 187.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3333,
"R": 2.0,
"H": 2.6667,
"BB": 2.3333,
"SO": 2.3333,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 62.3333
},
"rates": {
"ERA": 3.6,
"WHIP": 1.5,
"ER_per_IP": 0.4,
"H_per_IP": 0.8,
"BB_per_IP": 0.7,
"SO_per_IP": 0.7,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 3,
"totals": {
"IP": 10.0,
"ER": 4.0,
"R": 6.0,
"H": 8.0,
"BB": 7.0,
"SO": 7.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 187.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3333,
"R": 2.0,
"H": 2.6667,
"BB": 2.3333,
"SO": 2.3333,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 62.3333
},
"rates": {
"ERA": 3.6,
"WHIP": 1.5,
"ER_per_IP": 0.4,
"H_per_IP": 0.8,
"BB_per_IP": 0.7,
"SO_per_IP": 0.7,
"HR_per_IP": 0.1
}
},
"season": {
"games": 3,
"totals": {
"IP": 10.0,
"ER": 4.0,
"R": 6.0,
"H": 8.0,
"BB": 7.0,
"SO": 7.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 187.0
},
"per_game": {
"IP": 3.1,
"ER": 1.3333,
"R": 2.0,
"H": 2.6667,
"BB": 2.3333,
"SO": 2.3333,
"HR": 0.3333,
"BF": 15.6667,
"Pitches": 62.3333
},
"rates": {
"ERA": 3.6,
"WHIP": 1.5,
"ER_per_IP": 0.4,
"H_per_IP": 0.8,
"BB_per_IP": 0.7,
"SO_per_IP": 0.7,
"HR_per_IP": 0.1
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.2,
"predicted_ER": 1.733,
"predicted_H": 3.405,
"predicted_BB": 1.856,
"predicted_SO": 3.185,
"predicted_HR": 0.484,
"predicted_ERA": 4.1587,
"predicted_WHIP": 1.403
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.6141,
"form_weight": 0.3859,
"form_reliability": 0.375,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
},
"applied_metrics": {
"predicted_IP": {
"model": 4.0,
"form": 3.2,
"final": 4.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.733,
"final": 2.511,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 3.405,
"final": 6.2266,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.856,
"final": 1.3304,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.185,
"final": 4.2995,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.484,
"final": 0.8009,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.1587,
"final": 4.1587,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.403,
"final": 1.403,
"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": 10.0,
"ER": 4,
"H": 8,
"BB": 7,
"SO": 7,
"HR": 1,
"ERA": 3.6,
"WHIP": 1.5,
"K9": 6.3,
"HR9": 0.9,
"games_pitched": 3,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 3,
"error_prone": false
},
"games_count": 3,
"latest_game_date": "2026-06-02T00:00:00"
},
"recent_form_boost": 0.9726658921463729,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_BB": 1.0,
"predicted_SO": 5.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 3.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.375,
"prior_weight": 0.625
}
},
{
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_IP": 3.1,
"predicted_ER": 3,
"predicted_H": 8,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "804636",
"player_name": "Jonah Tong",
"position": "Starter",
"team": "NYM",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 3.1,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 1.0,
"predicted_IP": 3.1,
"predicted_R": 3.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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 3.1,
"after": 3.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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.0,
"after": 3.1,
"delta": -0.9,
"percent_delta": -0.225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYM",
"games": 143,
"wins": 65,
"losses": 78,
"win_pct": 0.4545,
"runs_scored": 596.0,
"runs_allowed": 644.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3357,
"avg_runs_scored": 4.1678,
"avg_runs_allowed": 4.5035,
"offense_index": 0.9291,
"defense_index": 0.9961,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0798
},
"opponent": {
"team": "MIA",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 631.0,
"runs_allowed": 616.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1042,
"avg_runs_scored": 4.3819,
"avg_runs_allowed": 4.2778,
"offense_index": 0.9768,
"defense_index": 1.0487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0222
},
"edges": {
"quality_edge": -0.0576,
"offense_edge": -0.0709,
"opponent_offense_edge": -0.0232,
"defense_strength": -0.0039,
"opponent_defense_weakness": -0.0487,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9985,
"run_prevention": 0.9996,
"strikeout": 1.0001
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "804636",
"profile": {
"available": true,
"pitcher_id": "804636",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 27.0,
"k_percent": 14.9,
"bb_percent": 14.9,
"woba": 0.28,
"xwoba": 0.309,
"sweet_spot_percent": 30.3,
"barrel_batted_rate": 6.1,
"hard_hit_percent": 30.3,
"avg_best_speed": 81.9393,
"avg_hyper_speed": 93.3219,
"whiff_percent": 23.4,
"swing_percent": 50.3
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2439,
"command_and_miss": -0.8264,
"regression_edge": -0.8286,
"xwoba_edge": 0.0571,
"barrel_edge": 0.2222,
"hard_hit_edge": 1.0857,
"whiff_edge": -0.2429,
"bb_edge": -1.425,
"pitch_design_score": 0.1082
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "804636",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 52,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 52,
"pitch_usage": 0.0,
"release_speed": 91.80939849624059,
"release_spin_rate": 2138.4699248120305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 52,
"pitch_usage": 0.0,
"release_speed": 91.80939849624059,
"release_spin_rate": 2138.4699248120305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8094,
"release_spin_rate": 2138.4699,
"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.1082,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.773,
"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.0686,
"sample_weight": 0.45,
"run_prevention_factor": 1.0058,
"strikeout_factor": 0.9774,
"walk_factor": 1.0513,
"homer_factor": 0.9717,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "804636",
"espn_id": 5214984,
"player_name": "Jonah Tong",
"team": "NYM",
"role": "pitcher",
"espn_rank": 553,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 553,
"gp_value": 3.0,
"gp_rank": 704,
"gs_value": 0.0,
"gs_rank": 360,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 3.6,
"era_rank": null,
"w_value": 1.0,
"w_rank": 405,
"l_value": 1.0,
"l_rank": 425,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 10.0,
"ip_rank": 610,
"h_value": 8.0,
"h_rank": 657,
"er_value": 4.0,
"er_rank": 679,
"hr_value": 1.0,
"hr_rank": 608,
"bb_value": 7.0,
"bb_rank": 547,
"k_value": 7.0,
"k_rank": 635,
"k_per_9_value": 6.2999997,
"k_per_9_rank": 28,
"whip_value": 1.5,
"whip_rank": null,
"war_value": -0.05,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0026,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 1.0026,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0231,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9873,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9898,
"adjusted": 2
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 3.1,
"predicted_H": 8,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 5,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 19,
"Pitches": 70,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "PARTIAL_PRIOR_HISTORY",
"severity": "warning",
"title": "Only 3 prior appearances available",
"detail": "The requested last-10 window is incomplete, so recent-form averages have a smaller and less stable sample."
},
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +1."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260907_NYM@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"
}
} |
| 20260907 | 20260907_NYM@MIA | home | Eury Pérez | Eury Pérez | True | 5.1 | 4.0 | -4 | 3 | 5 | 2 | 7/10 | 1/3 | 1/5 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.7241379310344827,
"WHIP": 1.1822660098522166,
"IP": 135.1,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.413,
"recent_avg_IP": 5.133,
"last_start_IP": 4.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.0729,
"sample_weight": 1.0,
"run_prevention_factor": 0.9938,
"strikeout_factor": 1.0451,
"walk_factor": 1.028,
"homer_factor": 1.0617,
"regression_flag": "neutral",
"k_percent": 26.1,
"bb_percent": 10.6,
"woba": 0.3,
"xwoba": 0.31,
"barrel_percent": 10.2,
"hard_hit_percent": 39.2,
"whiff_percent": 28.9
},
"espn_rank": {
"rank": 104,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 25.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8333,
"prior_weight": 0.1667
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691587",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.2,
"ER": 12.0,
"R": 13.0,
"H": 19.0,
"BB": 17.0,
"SO": 24.0,
"HR": 4.0,
"BF": 109.0,
"Pitches": 476.0
},
"per_game": {
"IP": 5.0,
"ER": 2.4,
"R": 2.6,
"H": 3.8,
"BB": 3.4,
"SO": 4.8,
"HR": 0.8,
"BF": 21.8,
"Pitches": 95.2
},
"rates": {
"ERA": 4.2078,
"WHIP": 1.4026,
"ER_per_IP": 0.46753,
"H_per_IP": 0.74026,
"BB_per_IP": 0.66234,
"SO_per_IP": 0.93506,
"HR_per_IP": 0.15584
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 55.2,
"ER": 22.0,
"R": 24.0,
"H": 45.0,
"BB": 27.0,
"SO": 56.0,
"HR": 4.0,
"BF": 233.0,
"Pitches": 960.0
},
"per_game": {
"IP": 5.2,
"ER": 2.2,
"R": 2.4,
"H": 4.5,
"BB": 2.7,
"SO": 5.6,
"HR": 0.4,
"BF": 23.3,
"Pitches": 96.0
},
"rates": {
"ERA": 3.5569,
"WHIP": 1.2934,
"ER_per_IP": 0.39521,
"H_per_IP": 0.80838,
"BB_per_IP": 0.48503,
"SO_per_IP": 1.00599,
"HR_per_IP": 0.07186
}
},
"season": {
"games": 25,
"totals": {
"IP": 135.1,
"ER": 56.0,
"R": 62.0,
"H": 101.0,
"BB": 59.0,
"SO": 145.0,
"HR": 17.0,
"BF": 556.0,
"Pitches": 2269.0
},
"per_game": {
"IP": 5.1,
"ER": 2.24,
"R": 2.48,
"H": 4.04,
"BB": 2.36,
"SO": 5.8,
"HR": 0.68,
"BF": 22.24,
"Pitches": 90.76
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.1823,
"ER_per_IP": 0.41379,
"H_per_IP": 0.74631,
"BB_per_IP": 0.43596,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.12562
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 2.349,
"predicted_H": 4.244,
"predicted_BB": 2.783,
"predicted_SO": 5.195,
"predicted_HR": 0.662,
"predicted_ERA": 3.9851,
"predicted_WHIP": 1.3244
}
},
"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": 3.0,
"form": 2.349,
"final": 2.6227,
"source": "model_form_blend"
},
"predicted_H": {
"model": 7.0,
"form": 4.244,
"final": 5.4027,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.783,
"final": 2.0334,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 5.195,
"final": 3.4313,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.662,
"final": 0.8041,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9851,
"final": 3.9851,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3244,
"final": 1.3244,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 55.2,
"ER": 22,
"H": 45,
"BB": 27,
"SO": 56,
"HR": 4,
"ERA": 3.55688622754491,
"WHIP": 1.2934131736526946,
"K9": 9.053892215568862,
"HR9": 0.6467065868263473,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.9064063165509983,
"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": 7.0,
"predicted_BB": 1.0,
"predicted_SO": 1.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": "691587",
"player_name": "Eury P\u00e9rez",
"position": "Starter",
"team": "MIA",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 1.0,
"predicted_IP": 5.1,
"predicted_R": 3.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 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": "MIA",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 631.0,
"runs_allowed": 616.0,
"run_differential": 15.0,
"run_differential_per_game": 0.1042,
"avg_runs_scored": 4.3819,
"avg_runs_allowed": 4.2778,
"offense_index": 0.9768,
"defense_index": 1.0487,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.9,
"avg_runs_allowed": 5.3,
"run_differential": -4.0
},
"available": true,
"quality_score": -0.0222
},
"opponent": {
"team": "NYM",
"games": 143,
"wins": 65,
"losses": 78,
"win_pct": 0.4545,
"runs_scored": 596.0,
"runs_allowed": 644.0,
"run_differential": -48.0,
"run_differential_per_game": -0.3357,
"avg_runs_scored": 4.1678,
"avg_runs_allowed": 4.5035,
"offense_index": 0.9291,
"defense_index": 0.9961,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.8,
"run_differential": -2.0
},
"available": true,
"quality_score": -0.0798
},
"edges": {
"quality_edge": 0.0576,
"offense_edge": -0.0232,
"opponent_offense_edge": -0.0709,
"defense_strength": 0.0487,
"opponent_defense_weakness": 0.0039,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0066,
"run_prevention": 0.9809,
"strikeout": 1.0074
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691587",
"profile": {
"available": true,
"pitcher_id": "691587",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 494.0,
"k_percent": 26.1,
"bb_percent": 10.6,
"woba": 0.3,
"xwoba": 0.31,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 10.2,
"hard_hit_percent": 39.2,
"avg_best_speed": 77.3669,
"avg_hyper_speed": 94.2543,
"whiff_percent": 28.9,
"swing_percent": 51.2
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.0209,
"command_and_miss": 0.3836,
"regression_edge": -0.2857,
"xwoba_edge": 0.0286,
"barrel_edge": -0.6889,
"hard_hit_edge": -0.1857,
"whiff_edge": 0.5429,
"bb_edge": -0.35,
"pitch_design_score": 0.1672
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691587",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.86224536987449,
"release_spin_rate": 2522.012850884775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 92.86224536987449,
"release_spin_rate": 2522.012850884775,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.8622,
"release_spin_rate": 2522.0129,
"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.1672,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1941,
"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.0729,
"sample_weight": 1.0,
"run_prevention_factor": 0.9938,
"strikeout_factor": 1.0451,
"walk_factor": 1.028,
"homer_factor": 1.0617,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "691587",
"espn_id": 4917854,
"player_name": "Eury Perez",
"team": "MIA",
"role": "pitcher",
"espn_rank": 104,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 104,
"gp_value": 25.0,
"gp_rank": 314,
"gs_value": 25.0,
"gs_rank": 57,
"qs_value": 11.0,
"qs_rank": 45,
"era_value": 3.7241,
"era_rank": null,
"w_value": 7.0,
"w_rank": 82,
"l_value": 10.0,
"l_rank": 16,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 135.1,
"ip_rank": 66,
"h_value": 101.0,
"h_rank": 113,
"er_value": 56.0,
"er_rank": 73,
"hr_value": 17.0,
"hr_rank": 65,
"bb_value": 59.0,
"bb_rank": 15,
"k_value": 145.0,
"k_rank": 31,
"k_per_9_value": 9.642858,
"k_per_9_rank": 12,
"whip_value": 1.1822,
"whip_rank": null,
"war_value": 1.66,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9938,
"adjusted": 2
},
"predicted_H": {
"original": 4.0,
"factor": 0.9938,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.028,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0617,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 1.0451,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 7,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 1,
"predicted_SO": 1,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 92,
"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/20260907_NYM@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"
}
} |
| 20260907 | 20260907_STL@SF | away | Michael McGreevy | Michael McGreevy | True | 5.1 | 6.2 | 4 | 2 | 2 | 0 | 3/6 | 2/2 | 1/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9705882352941173,
"WHIP": 1.255656108597285,
"IP": 147.1,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 5.457,
"recent_avg_IP": 5.4,
"last_start_IP": 5.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.6066,
"sample_weight": 1.0,
"run_prevention_factor": 1.0516,
"strikeout_factor": 0.9389,
"walk_factor": 0.948,
"homer_factor": 1.1095,
"regression_flag": "negative_pitcher_regression",
"k_percent": 16.8,
"bb_percent": 6.6,
"woba": 0.319,
"xwoba": 0.352,
"barrel_percent": 9.9,
"hard_hit_percent": 42.2,
"whiff_percent": 19.6
},
"espn_rank": {
"rank": 113,
"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": "700241",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 27.0,
"ER": 17.0,
"R": 20.0,
"H": 31.0,
"BB": 10.0,
"SO": 21.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 468.0
},
"per_game": {
"IP": 5.1,
"ER": 3.4,
"R": 4.0,
"H": 6.2,
"BB": 2.0,
"SO": 4.2,
"HR": 0.8,
"BF": 24.2,
"Pitches": 93.6
},
"rates": {
"ERA": 5.6667,
"WHIP": 1.5185,
"ER_per_IP": 0.62963,
"H_per_IP": 1.14815,
"BB_per_IP": 0.37037,
"SO_per_IP": 0.77778,
"HR_per_IP": 0.14815
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 52.0,
"ER": 32.0,
"R": 36.0,
"H": 61.0,
"BB": 18.0,
"SO": 42.0,
"HR": 7.0,
"BF": 231.0,
"Pitches": 901.0
},
"per_game": {
"IP": 5.1,
"ER": 3.2,
"R": 3.6,
"H": 6.1,
"BB": 1.8,
"SO": 4.2,
"HR": 0.7,
"BF": 23.1,
"Pitches": 90.1
},
"rates": {
"ERA": 5.5385,
"WHIP": 1.5192,
"ER_per_IP": 0.61538,
"H_per_IP": 1.17308,
"BB_per_IP": 0.34615,
"SO_per_IP": 0.80769,
"HR_per_IP": 0.13462
}
},
"season": {
"games": 27,
"totals": {
"IP": 147.1,
"ER": 65.0,
"R": 69.0,
"H": 145.0,
"BB": 40.0,
"SO": 102.0,
"HR": 20.0,
"BF": 608.0,
"Pitches": 2399.0
},
"per_game": {
"IP": 5.1,
"ER": 2.4074,
"R": 2.5556,
"H": 5.3704,
"BB": 1.4815,
"SO": 3.7778,
"HR": 0.7407,
"BF": 22.5185,
"Pitches": 88.8519
},
"rates": {
"ERA": 3.9706,
"WHIP": 1.2557,
"ER_per_IP": 0.44118,
"H_per_IP": 0.98416,
"BB_per_IP": 0.27149,
"SO_per_IP": 0.69231,
"HR_per_IP": 0.13575
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.057,
"predicted_H": 5.869,
"predicted_BB": 1.85,
"predicted_SO": 4.253,
"predicted_HR": 0.756,
"predicted_ERA": 5.1594,
"predicted_WHIP": 1.4472
}
},
"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.1,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 3.057,
"final": 2.6173,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 5.869,
"final": 4.6755,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.85,
"final": 1.9124,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 4.253,
"final": 2.8998,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.756,
"final": 1.2735,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.1594,
"final": 5.1594,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4472,
"final": 1.4472,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 52.0,
"ER": 32,
"H": 61,
"BB": 18,
"SO": 42,
"HR": 7,
"ERA": 5.538461538461538,
"WHIP": 1.5192307692307692,
"K9": 7.269230769230769,
"HR9": 1.2115384615384615,
"games_pitched": 10,
"quality_starts": 3,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.134978978918571,
"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": 3.0,
"predicted_BB": 2.0,
"predicted_SO": 1.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": "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": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 2.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 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": "STL",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 657.0,
"runs_allowed": 666.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0625,
"avg_runs_scored": 4.5625,
"avg_runs_allowed": 4.625,
"offense_index": 1.0153,
"defense_index": 0.9716,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 5.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0274
},
"opponent": {
"team": "SF",
"games": 144,
"wins": 59,
"losses": 85,
"win_pct": 0.4097,
"runs_scored": 603.0,
"runs_allowed": 678.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5208,
"avg_runs_scored": 4.1875,
"avg_runs_allowed": 4.7083,
"offense_index": 0.9319,
"defense_index": 0.9544,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 6.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1755
},
"edges": {
"quality_edge": 0.2029,
"offense_edge": 0.0153,
"opponent_offense_edge": -0.0681,
"defense_strength": -0.0284,
"opponent_defense_weakness": 0.0456,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.01,
"run_prevention": 0.9818,
"strikeout": 1.0115
},
"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": 16.8,
"bb_percent": 6.6,
"woba": 0.319,
"xwoba": 0.352,
"sweet_spot_percent": 34.0,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 42.2,
"avg_best_speed": 79.0644,
"avg_hyper_speed": 94.7966,
"whiff_percent": 19.6,
"swing_percent": 44.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.67,
"command_and_miss": -0.4793,
"regression_edge": -0.9429,
"xwoba_edge": -1.1714,
"barrel_edge": -0.6222,
"hard_hit_edge": -0.6143,
"whiff_edge": -0.7857,
"bb_edge": 0.65,
"pitch_design_score": -0.1565
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "700241",
"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": 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": 98,
"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.1565,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.1181,
"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.6066,
"sample_weight": 1.0,
"run_prevention_factor": 1.0516,
"strikeout_factor": 0.9389,
"walk_factor": 0.948,
"homer_factor": 1.1095,
"woba_minus_xwoba": -0.033,
"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": 113,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 113,
"gp_value": 27.0,
"gp_rank": 274,
"gs_value": 27.0,
"gs_rank": 34,
"qs_value": 14.0,
"qs_rank": 22,
"era_value": 3.9705,
"era_rank": 33.0,
"w_value": 6.0,
"w_rank": 102,
"l_value": 9.0,
"l_rank": 28,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 147.1,
"ip_rank": 44,
"h_value": 145.0,
"h_rank": 23,
"er_value": 65.0,
"er_rank": 48,
"hr_value": 20.0,
"hr_rank": 35,
"bb_value": 40.0,
"bb_rank": 80,
"k_value": 102.0,
"k_rank": 94,
"k_per_9_value": 6.230769,
"k_per_9_rank": 57,
"whip_value": 1.2556,
"whip_rank": 33.0,
"war_value": 1.52,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0516,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0516,
"adjusted": 6
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1095,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9389,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 2,
"predicted_SO": 1,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 22,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260907_STL@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"
}
} |
| 20260907 | 20260907_STL@SF | home | Logan Webb | Logan Webb | True | 5.1 | 6.0 | 2 | 4 | 1 | -3 | 6/3 | 2/2 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.20935412026726,
"WHIP": 1.1625835189309577,
"IP": 149.2,
"games_started": null,
"games_pitched": 25,
"role_avg_IP": 5.987,
"recent_avg_IP": 4.933,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0095,
"sample_weight": 1.0,
"run_prevention_factor": 1.0008,
"strikeout_factor": 0.9589,
"walk_factor": 0.938,
"homer_factor": 0.9756,
"regression_flag": "neutral",
"k_percent": 19.2,
"bb_percent": 6.1,
"woba": 0.29,
"xwoba": 0.311,
"barrel_percent": 5.6,
"hard_hit_percent": 38.3,
"whiff_percent": 20.7
},
"espn_rank": {
"rank": 139,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "657277",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 25,
"reference_playing_time": 5.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 24.2,
"ER": 18.0,
"R": 18.0,
"H": 28.0,
"BB": 7.0,
"SO": 18.0,
"HR": 2.0,
"BF": 111.0,
"Pitches": 412.0
},
"per_game": {
"IP": 5.0,
"ER": 3.6,
"R": 3.6,
"H": 5.6,
"BB": 1.4,
"SO": 3.6,
"HR": 0.4,
"BF": 22.2,
"Pitches": 82.4
},
"rates": {
"ERA": 6.5676,
"WHIP": 1.4189,
"ER_per_IP": 0.72973,
"H_per_IP": 1.13514,
"BB_per_IP": 0.28378,
"SO_per_IP": 0.72973,
"HR_per_IP": 0.08108
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.1,
"ER": 32.0,
"R": 32.0,
"H": 51.0,
"BB": 14.0,
"SO": 41.0,
"HR": 4.0,
"BF": 239.0,
"Pitches": 909.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.2,
"H": 5.1,
"BB": 1.4,
"SO": 4.1,
"HR": 0.4,
"BF": 23.9,
"Pitches": 90.9
},
"rates": {
"ERA": 5.1124,
"WHIP": 1.1538,
"ER_per_IP": 0.56805,
"H_per_IP": 0.90533,
"BB_per_IP": 0.24852,
"SO_per_IP": 0.72781,
"HR_per_IP": 0.07101
}
},
"season": {
"games": 25,
"totals": {
"IP": 149.2,
"ER": 70.0,
"R": 73.0,
"H": 136.0,
"BB": 38.0,
"SO": 119.0,
"HR": 11.0,
"BF": 621.0,
"Pitches": 2297.0
},
"per_game": {
"IP": 6.0,
"ER": 2.8,
"R": 2.92,
"H": 5.44,
"BB": 1.52,
"SO": 4.76,
"HR": 0.44,
"BF": 24.84,
"Pitches": 91.88
},
"rates": {
"ERA": 4.2094,
"WHIP": 1.1626,
"ER_per_IP": 0.46771,
"H_per_IP": 0.90869,
"BB_per_IP": 0.2539,
"SO_per_IP": 0.7951,
"HR_per_IP": 0.0735
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 3.253,
"predicted_H": 5.435,
"predicted_BB": 1.534,
"predicted_SO": 4.198,
"predicted_HR": 0.475,
"predicted_ERA": 5.4045,
"predicted_WHIP": 1.2865
}
},
"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": 4.0,
"form": 3.253,
"final": 3.5671,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 5.435,
"final": 5.6725,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.534,
"final": 1.7299,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 4.198,
"final": 4.5352,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.475,
"final": 1.1162,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.4045,
"final": 5.4045,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2865,
"final": 1.2865,
"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": 32,
"H": 51,
"BB": 14,
"SO": 41,
"HR": 4,
"ERA": 5.112426035502959,
"WHIP": 1.153846153846154,
"K9": 6.550295857988166,
"HR9": 0.6390532544378699,
"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-09-01T00:00:00"
},
"recent_form_boost": 1.0779153694511154,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 5.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "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": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 4.0,
"predicted_H": 6.0,
"predicted_HR": 2.0,
"predicted_IP": 5.1,
"predicted_R": 4.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.3333,
"after": 5.1,
"delta": -0.2333,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SF",
"games": 144,
"wins": 59,
"losses": 85,
"win_pct": 0.4097,
"runs_scored": 603.0,
"runs_allowed": 678.0,
"run_differential": -75.0,
"run_differential_per_game": -0.5208,
"avg_runs_scored": 4.1875,
"avg_runs_allowed": 4.7083,
"offense_index": 0.9319,
"defense_index": 0.9544,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 5.7,
"avg_runs_allowed": 6.3,
"run_differential": -6.0
},
"available": true,
"quality_score": -0.1755
},
"opponent": {
"team": "STL",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 657.0,
"runs_allowed": 666.0,
"run_differential": -9.0,
"run_differential_per_game": -0.0625,
"avg_runs_scored": 4.5625,
"avg_runs_allowed": 4.625,
"offense_index": 1.0153,
"defense_index": 0.9716,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 6,
"losses": 4,
"win_pct": 0.6,
"avg_runs_scored": 6.4,
"avg_runs_allowed": 5.8,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.0274
},
"edges": {
"quality_edge": -0.2029,
"offense_edge": -0.0681,
"opponent_offense_edge": 0.0153,
"defense_strength": -0.0456,
"opponent_defense_weakness": 0.0284,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9899,
"run_prevention": 1.0172,
"strikeout": 0.9927
},
"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.2,
"bb_percent": 6.1,
"woba": 0.29,
"xwoba": 0.311,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 5.6,
"hard_hit_percent": 38.3,
"avg_best_speed": 76.5802,
"avg_hyper_speed": 93.818,
"whiff_percent": 20.7,
"swing_percent": 47.5
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2129,
"command_and_miss": -0.245,
"regression_edge": -0.6,
"xwoba_edge": 0.0,
"barrel_edge": 0.3333,
"hard_hit_edge": -0.0571,
"whiff_edge": -0.6286,
"bb_edge": 0.775,
"pitch_design_score": -0.0629
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "657277",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 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": 92,
"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.0629,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4494,
"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.0095,
"sample_weight": 1.0,
"run_prevention_factor": 1.0008,
"strikeout_factor": 0.9589,
"walk_factor": 0.938,
"homer_factor": 0.9756,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "657277",
"espn_id": 41216,
"player_name": "Logan Webb",
"team": "SF",
"role": "pitcher",
"espn_rank": 139,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 139,
"gp_value": 25.0,
"gp_rank": 314,
"gs_value": 25.0,
"gs_rank": 57,
"qs_value": 16.0,
"qs_rank": 13,
"era_value": 4.2093,
"era_rank": 41.0,
"w_value": 8.0,
"w_rank": 63,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 149.2,
"ip_rank": 41,
"h_value": 136.0,
"h_rank": 40,
"er_value": 70.0,
"er_rank": 25,
"hr_value": 11.0,
"hr_rank": 143,
"bb_value": 38.0,
"bb_rank": 94,
"k_value": 119.0,
"k_rank": 70,
"k_per_9_value": 7.1559024,
"k_per_9_rank": 46,
"whip_value": 1.1625,
"whip_rank": 24.0,
"war_value": 1.28,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0008,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 1.0008,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.938,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9756,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9589,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.1,
"predicted_H": 6,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 25,
"Pitches": 105,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260907_STL@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"
}
} |
| 20260907 | 20260907_TOR@OAK | away | Dylan Cease | Dylan Cease | True | 6.0 | 5.0 | -3 | 2 | 4 | 2 | 3/4 | 1/2 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.2452025586353943,
"WHIP": 1.0362473347547974,
"IP": 156.1,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 6.013,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.9565,
"sample_weight": 1.0,
"run_prevention_factor": 0.9187,
"strikeout_factor": 1.1269,
"walk_factor": 1.026,
"homer_factor": 0.885,
"regression_flag": "neutral",
"k_percent": 35.5,
"bb_percent": 10.5,
"woba": 0.245,
"xwoba": 0.257,
"barrel_percent": 5.1,
"hard_hit_percent": 32.1,
"whiff_percent": 33.8
},
"espn_rank": {
"rank": 3,
"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": "656302",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 7.0,
"R": 7.0,
"H": 17.0,
"BB": 13.0,
"SO": 37.0,
"HR": 3.0,
"BF": 117.0,
"Pitches": 494.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 2.6,
"SO": 7.4,
"HR": 0.6,
"BF": 23.4,
"Pitches": 98.8
},
"rates": {
"ERA": 2.1,
"WHIP": 1.0,
"ER_per_IP": 0.23333,
"H_per_IP": 0.56667,
"BB_per_IP": 0.43333,
"SO_per_IP": 1.23333,
"HR_per_IP": 0.1
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 66.0,
"ER": 11.0,
"R": 13.0,
"H": 31.0,
"BB": 24.0,
"SO": 84.0,
"HR": 5.0,
"BF": 249.0,
"Pitches": 1033.0
},
"per_game": {
"IP": 6.2,
"ER": 1.1,
"R": 1.3,
"H": 3.1,
"BB": 2.4,
"SO": 8.4,
"HR": 0.5,
"BF": 24.9,
"Pitches": 103.3
},
"rates": {
"ERA": 1.5,
"WHIP": 0.8333,
"ER_per_IP": 0.16667,
"H_per_IP": 0.4697,
"BB_per_IP": 0.36364,
"SO_per_IP": 1.27273,
"HR_per_IP": 0.07576
}
},
"season": {
"games": 26,
"totals": {
"IP": 156.1,
"ER": 39.0,
"R": 44.0,
"H": 97.0,
"BB": 65.0,
"SO": 221.0,
"HR": 10.0,
"BF": 622.0,
"Pitches": 2633.0
},
"per_game": {
"IP": 6.0,
"ER": 1.5,
"R": 1.6923,
"H": 3.7308,
"BB": 2.5,
"SO": 8.5,
"HR": 0.3846,
"BF": 23.9231,
"Pitches": 101.2692
},
"rates": {
"ERA": 2.2452,
"WHIP": 1.0362,
"ER_per_IP": 0.24947,
"H_per_IP": 0.62047,
"BB_per_IP": 0.41578,
"SO_per_IP": 1.41365,
"HR_per_IP": 0.06397
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.607,
"predicted_H": 3.796,
"predicted_BB": 2.479,
"predicted_SO": 7.606,
"predicted_HR": 0.584,
"predicted_ERA": 2.3344,
"predicted_WHIP": 1.0128
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.1,
"final": 6.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.607,
"final": 1.7713,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.796,
"final": 3.4632,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.479,
"final": 1.8606,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 7.606,
"final": 6.0982,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.584,
"final": 0.3398,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.3344,
"final": 2.3344,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0128,
"final": 1.0128,
"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": 66.0,
"ER": 11,
"H": 31,
"BB": 24,
"SO": 84,
"HR": 5,
"ERA": 1.5,
"WHIP": 0.8333333333333334,
"K9": 11.454545454545455,
"HR9": 0.6818181818181818,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.688030639818689,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 2,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 8,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656302",
"player_name": "Dylan Cease",
"position": "Starter",
"team": "TOR",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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": 8.0,
"delta": 4.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": 4.0,
"after": 8.0,
"delta": 4.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": 1.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"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": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 7.0,
"delta": 3.0,
"percent_delta": 0.75,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TOR",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 580.0,
"runs_allowed": 618.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2639,
"avg_runs_scored": 4.0278,
"avg_runs_allowed": 4.2917,
"offense_index": 0.8966,
"defense_index": 1.0467,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.7,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.0377
},
"opponent": {
"team": "OAK",
"games": 144,
"wins": 57,
"losses": 87,
"win_pct": 0.3958,
"runs_scored": 631.0,
"runs_allowed": 819.0,
"run_differential": -188.0,
"run_differential_per_game": -1.3056,
"avg_runs_scored": 4.3819,
"avg_runs_allowed": 5.6875,
"offense_index": 0.9755,
"defense_index": 0.7898,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2834
},
"edges": {
"quality_edge": 0.3211,
"offense_edge": -0.1034,
"opponent_offense_edge": -0.0245,
"defense_strength": 0.0467,
"opponent_defense_weakness": 0.2102,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0152,
"run_prevention": 0.9754,
"strikeout": 1.0116
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656302",
"profile": {
"available": true,
"pitcher_id": "656302",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 549.0,
"k_percent": 35.5,
"bb_percent": 10.5,
"woba": 0.245,
"xwoba": 0.257,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 5.1,
"hard_hit_percent": 32.1,
"avg_best_speed": 73.194,
"avg_hyper_speed": 93.1573,
"whiff_percent": 33.8,
"swing_percent": 46.0
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.1858,
"command_and_miss": 1.2379,
"regression_edge": -0.3429,
"xwoba_edge": 1.5429,
"barrel_edge": 0.4444,
"hard_hit_edge": 0.8286,
"whiff_edge": 1.2429,
"bb_edge": -0.325,
"pitch_design_score": 0.061
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656302",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 104,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 104,
"pitch_usage": 0.0,
"release_speed": 90.9657064009816,
"release_spin_rate": 2491.7307751389935,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 104,
"pitch_usage": 0.0,
"release_speed": 90.9657064009816,
"release_spin_rate": 2491.7307751389935,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9657,
"release_spin_rate": 2491.7308,
"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.061,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4355,
"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.9565,
"sample_weight": 1.0,
"run_prevention_factor": 0.9187,
"strikeout_factor": 1.1269,
"walk_factor": 1.026,
"homer_factor": 0.885,
"woba_minus_xwoba": -0.012,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "656302",
"espn_id": 34943,
"player_name": "Dylan Cease",
"team": "TOR",
"role": "pitcher",
"espn_rank": 3,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 3,
"gp_value": 26.0,
"gp_rank": 297,
"gs_value": 26.0,
"gs_rank": 45,
"qs_value": 15.0,
"qs_rank": 17,
"era_value": 2.2452,
"era_rank": 4.0,
"w_value": 10.0,
"w_rank": 29,
"l_value": 5.0,
"l_rank": 133,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 156.1,
"ip_rank": 26,
"h_value": 97.0,
"h_rank": 119,
"er_value": 39.0,
"er_rank": 150,
"hr_value": 10.0,
"hr_rank": 156,
"bb_value": 65.0,
"bb_rank": 10,
"k_value": 221.0,
"k_rank": 3,
"k_per_9_value": 12.722815,
"k_per_9_rank": 3,
"whip_value": 1.0362,
"whip_rank": 7.0,
"war_value": 6.08,
"war_rank": 1.0
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9187,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9187,
"adjusted": 4
},
"predicted_BB": {
"original": 3.0,
"factor": 1.026,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 0.885,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.1269,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 3,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 24,
"Pitches": 89,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "MATERIAL_ER_MISS",
"severity": "warning",
"title": "Earned-run miss of 2",
"detail": "Actual minus predicted earned runs was +2."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260907_TOR@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"
}
} |
| 20260907 | 20260907_TOR@OAK | home | Jacob Lopez | Jacob Lopez | True | 5.0 | 6.0 | 3 | 5 | 4 | -1 | 6/7 | 2/1 | 8/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 4.714285714285714,
"WHIP": 1.457142857142857,
"IP": 105.0,
"games_started": null,
"games_pitched": 23,
"role_avg_IP": 4.817,
"recent_avg_IP": 6.0,
"last_start_IP": 6.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.358,
"sample_weight": 1.0,
"run_prevention_factor": 0.9696,
"strikeout_factor": 1.004,
"walk_factor": 1.04,
"homer_factor": 0.9155,
"regression_flag": "positive_pitcher_regression",
"k_percent": 22.1,
"bb_percent": 11.2,
"woba": 0.334,
"xwoba": 0.286,
"barrel_percent": 5.9,
"hard_hit_percent": 30.6,
"whiff_percent": 25.7
},
"espn_rank": {
"rank": 143,
"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": "682052",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 23,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 8.0,
"R": 9.0,
"H": 22.0,
"BB": 9.0,
"SO": 33.0,
"HR": 4.0,
"BF": 121.0,
"Pitches": 479.0
},
"per_game": {
"IP": 6.0,
"ER": 1.6,
"R": 1.8,
"H": 4.4,
"BB": 1.8,
"SO": 6.6,
"HR": 0.8,
"BF": 24.2,
"Pitches": 95.8
},
"rates": {
"ERA": 2.4,
"WHIP": 1.0333,
"ER_per_IP": 0.26667,
"H_per_IP": 0.73333,
"BB_per_IP": 0.3,
"SO_per_IP": 1.1,
"HR_per_IP": 0.13333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 51.1,
"ER": 13.0,
"R": 15.0,
"H": 36.0,
"BB": 18.0,
"SO": 61.0,
"HR": 6.0,
"BF": 209.0,
"Pitches": 850.0
},
"per_game": {
"IP": 5.0,
"ER": 1.3,
"R": 1.5,
"H": 3.6,
"BB": 1.8,
"SO": 6.1,
"HR": 0.6,
"BF": 20.9,
"Pitches": 85.0
},
"rates": {
"ERA": 2.2792,
"WHIP": 1.0519,
"ER_per_IP": 0.25325,
"H_per_IP": 0.7013,
"BB_per_IP": 0.35065,
"SO_per_IP": 1.18831,
"HR_per_IP": 0.11688
}
},
"season": {
"games": 23,
"totals": {
"IP": 105.0,
"ER": 55.0,
"R": 58.0,
"H": 101.0,
"BB": 52.0,
"SO": 103.0,
"HR": 17.0,
"BF": 466.0,
"Pitches": 1891.0
},
"per_game": {
"IP": 4.2,
"ER": 2.3913,
"R": 2.5217,
"H": 4.3913,
"BB": 2.2609,
"SO": 4.4783,
"HR": 0.7391,
"BF": 20.2609,
"Pitches": 82.2174
},
"rates": {
"ERA": 4.7143,
"WHIP": 1.4571,
"ER_per_IP": 0.52381,
"H_per_IP": 0.9619,
"BB_per_IP": 0.49524,
"SO_per_IP": 0.98095,
"HR_per_IP": 0.1619
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.883,
"predicted_H": 4.371,
"predicted_BB": 1.954,
"predicted_SO": 5.853,
"predicted_HR": 0.737,
"predicted_ERA": 3.1195,
"predicted_WHIP": 1.1639
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4255,
"form_weight": 0.5745,
"form_reliability": 0.8214,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.1,
"final": 5.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 1.883,
"final": 3.2092,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.371,
"final": 5.0641,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.954,
"final": 1.9736,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 8.0,
"form": 5.853,
"final": 6.7665,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.737,
"final": 0.8489,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.1195,
"final": 3.1195,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1639,
"final": 1.1639,
"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": 13,
"H": 36,
"BB": 18,
"SO": 61,
"HR": 6,
"ERA": 2.2792207792207795,
"WHIP": 1.051948051948052,
"K9": 10.694805194805197,
"HR9": 1.051948051948052,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-02T00:00:00"
},
"recent_form_boost": 0.7566323255719176,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_BB": 2.0,
"predicted_SO": 8.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 23.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8214,
"prior_weight": 0.1786
}
},
{
"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": 5,
"predicted_H": 6,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682052",
"player_name": "Jacob Lopez",
"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": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.6667,
"predicted_SO": 8.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "starter_usage_guardrail",
"description": "Starter workload capped by recent innings, season ERA/WHIP, and team-form context.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1176,
"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": 5.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 5.0,
"predicted_SO": 8.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.0,
"delta": -0.6667,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.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": "OAK",
"games": 144,
"wins": 57,
"losses": 87,
"win_pct": 0.3958,
"runs_scored": 631.0,
"runs_allowed": 819.0,
"run_differential": -188.0,
"run_differential_per_game": -1.3056,
"avg_runs_scored": 4.3819,
"avg_runs_allowed": 5.6875,
"offense_index": 0.9755,
"defense_index": 0.7898,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.9,
"run_differential": -3.0
},
"available": true,
"quality_score": -0.2834
},
"opponent": {
"team": "TOR",
"games": 144,
"wins": 72,
"losses": 72,
"win_pct": 0.5,
"runs_scored": 580.0,
"runs_allowed": 618.0,
"run_differential": -38.0,
"run_differential_per_game": -0.2639,
"avg_runs_scored": 4.0278,
"avg_runs_allowed": 4.2917,
"offense_index": 0.8966,
"defense_index": 1.0467,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.7,
"run_differential": 16.0
},
"available": true,
"quality_score": 0.0377
},
"edges": {
"quality_edge": -0.3211,
"offense_edge": -0.0245,
"opponent_offense_edge": -0.1034,
"defense_strength": -0.2102,
"opponent_defense_weakness": -0.0467,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.985,
"run_prevention": 1.0205,
"strikeout": 0.9986
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682052",
"profile": {
"available": true,
"pitcher_id": "682052",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 393.0,
"k_percent": 22.1,
"bb_percent": 11.2,
"woba": 0.334,
"xwoba": 0.286,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 30.6,
"avg_best_speed": 71.6667,
"avg_hyper_speed": 92.4605,
"whiff_percent": 25.7,
"swing_percent": 45.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.4639,
"command_and_miss": -0.0636,
"regression_edge": 1.3714,
"xwoba_edge": 0.7143,
"barrel_edge": 0.2667,
"hard_hit_edge": 1.0429,
"whiff_edge": 0.0857,
"bb_edge": -0.5,
"pitch_design_score": -0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682052",
"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": 84.33938318705401,
"release_spin_rate": 2262.340834097883,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 84.33938318705401,
"release_spin_rate": 2262.340834097883,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.3394,
"release_spin_rate": 2262.3408,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": -0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.358,
"sample_weight": 1.0,
"run_prevention_factor": 0.9696,
"strikeout_factor": 1.004,
"walk_factor": 1.04,
"homer_factor": 0.9155,
"woba_minus_xwoba": 0.048,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "682052",
"espn_id": 42239,
"player_name": "Jacob Lopez",
"team": "ATH",
"role": "pitcher",
"espn_rank": 143,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 143,
"gp_value": 23.0,
"gp_rank": 344,
"gs_value": 20.0,
"gs_rank": 97,
"qs_value": 4.0,
"qs_rank": 122,
"era_value": 4.7142,
"era_rank": null,
"w_value": 6.0,
"w_rank": 102,
"l_value": 4.0,
"l_rank": 179,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 1.0,
"hld_rank": 267,
"ip_value": 105.0,
"ip_rank": 113,
"h_value": 101.0,
"h_rank": 113,
"er_value": 55.0,
"er_rank": 82,
"hr_value": 17.0,
"hr_rank": 65,
"bb_value": 52.0,
"bb_rank": 29,
"k_value": 103.0,
"k_rank": 92,
"k_per_9_value": 8.828571,
"k_per_9_rank": 21,
"whip_value": 1.4571,
"whip_rank": null,
"war_value": 1.26,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9696,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9696,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.04,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9155,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.004,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 6,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 2,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 23,
"Pitches": 92,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260907_TOR@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"
}
} |
| 20260907 | 20260907_WAS@SD | away | Jake Irvin | Jake Irvin | True | 4.2 | 5.2 | 3 | 3 | 3 | 0 | 3/8 | 4/2 | 3/3 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 5.5680933852140075,
"WHIP": 1.4007782101167314,
"IP": 85.2,
"games_started": null,
"games_pitched": 18,
"role_avg_IP": 4.759,
"recent_avg_IP": 4.733,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.5117,
"sample_weight": 1.0,
"run_prevention_factor": 1.0435,
"strikeout_factor": 0.9954,
"walk_factor": 1.026,
"homer_factor": 1.1457,
"regression_flag": "neutral",
"k_percent": 22.9,
"bb_percent": 10.5,
"woba": 0.339,
"xwoba": 0.35,
"barrel_percent": 11.1,
"hard_hit_percent": 45.1,
"whiff_percent": 23.4
},
"espn_rank": {
"rank": 722,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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": "663623",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 4.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 16.0,
"R": 16.0,
"H": 26.0,
"BB": 14.0,
"SO": 25.0,
"HR": 5.0,
"BF": 112.0,
"Pitches": 470.0
},
"per_game": {
"IP": 4.2,
"ER": 3.2,
"R": 3.2,
"H": 5.2,
"BB": 2.8,
"SO": 5.0,
"HR": 1.0,
"BF": 22.4,
"Pitches": 94.0
},
"rates": {
"ERA": 6.0845,
"WHIP": 1.6901,
"ER_per_IP": 0.67606,
"H_per_IP": 1.09859,
"BB_per_IP": 0.59155,
"SO_per_IP": 1.05634,
"HR_per_IP": 0.21127
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 46.0,
"ER": 30.0,
"R": 32.0,
"H": 42.0,
"BB": 24.0,
"SO": 46.0,
"HR": 10.0,
"BF": 204.0,
"Pitches": 854.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.2,
"H": 4.2,
"BB": 2.4,
"SO": 4.6,
"HR": 1.0,
"BF": 20.4,
"Pitches": 85.4
},
"rates": {
"ERA": 5.8696,
"WHIP": 1.4348,
"ER_per_IP": 0.65217,
"H_per_IP": 0.91304,
"BB_per_IP": 0.52174,
"SO_per_IP": 1.0,
"HR_per_IP": 0.21739
}
},
"season": {
"games": 18,
"totals": {
"IP": 85.2,
"ER": 53.0,
"R": 57.0,
"H": 80.0,
"BB": 40.0,
"SO": 87.0,
"HR": 15.0,
"BF": 380.0,
"Pitches": 1563.0
},
"per_game": {
"IP": 4.2,
"ER": 2.9444,
"R": 3.1667,
"H": 4.4444,
"BB": 2.2222,
"SO": 4.8333,
"HR": 0.8333,
"BF": 21.1111,
"Pitches": 86.8333
},
"rates": {
"ERA": 5.5681,
"WHIP": 1.4008,
"ER_per_IP": 0.61868,
"H_per_IP": 0.93385,
"BB_per_IP": 0.46693,
"SO_per_IP": 1.01556,
"HR_per_IP": 0.1751
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.2,
"predicted_ER": 2.903,
"predicted_H": 4.642,
"predicted_BB": 2.358,
"predicted_SO": 4.709,
"predicted_HR": 0.902,
"predicted_ERA": 5.599,
"predicted_WHIP": 1.4998
}
},
"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.2,
"final": 4.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.903,
"final": 2.9459,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 4.642,
"final": 3.9165,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 2.358,
"final": 3.0835,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.709,
"final": 3.9539,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.902,
"final": 0.9453,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.599,
"final": 5.599,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4998,
"final": 1.4998,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 46.0,
"ER": 30,
"H": 42,
"BB": 24,
"SO": 46,
"HR": 10,
"ERA": 5.869565217391305,
"WHIP": 1.434782608695652,
"K9": 9.0,
"HR9": 1.9565217391304348,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-01T00:00:00"
},
"recent_form_boost": 1.1701169387847918,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_BB": 4.0,
"predicted_SO": 3.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663623",
"player_name": "Jake Irvin",
"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": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 3.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 4.2,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 4.6667,
"after": 4.2,
"delta": -0.4667,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "WAS",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 748.0,
"runs_allowed": 739.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0621,
"avg_runs_scored": 5.1586,
"avg_runs_allowed": 5.0966,
"offense_index": 1.1485,
"defense_index": 0.8813,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0246
},
"opponent": {
"team": "SD",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 602.0,
"runs_allowed": 594.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0559,
"avg_runs_scored": 4.2098,
"avg_runs_allowed": 4.1538,
"offense_index": 0.9373,
"defense_index": 1.0813,
"current_streak": "W1",
"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.0073
},
"edges": {
"quality_edge": -0.0173,
"offense_edge": 0.1485,
"opponent_offense_edge": -0.0627,
"defense_strength": -0.1187,
"opponent_defense_weakness": -0.0813,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 0.9983,
"run_prevention": 1.0027,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663623",
"profile": {
"available": true,
"pitcher_id": "663623",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 313.0,
"k_percent": 22.9,
"bb_percent": 10.5,
"woba": 0.339,
"xwoba": 0.35,
"sweet_spot_percent": 35.2,
"barrel_batted_rate": 11.1,
"hard_hit_percent": 45.1,
"avg_best_speed": 77.3478,
"avg_hyper_speed": 94.7241,
"whiff_percent": 23.4,
"swing_percent": 46.6
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.7937,
"command_and_miss": -0.0921,
"regression_edge": -0.3143,
"xwoba_edge": -1.1143,
"barrel_edge": -0.8889,
"hard_hit_edge": -1.0286,
"whiff_edge": -0.2429,
"bb_edge": -0.325,
"pitch_design_score": -0.1472
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663623",
"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": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 87.2489732816989,
"release_spin_rate": 2375.958323028785,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.249,
"release_spin_rate": 2375.9583,
"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.1472,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.0512,
"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.5117,
"sample_weight": 1.0,
"run_prevention_factor": 1.0435,
"strikeout_factor": 0.9954,
"walk_factor": 1.026,
"homer_factor": 1.1457,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": true,
"player_id": "663623",
"espn_id": 41290,
"player_name": "Jake Irvin",
"team": "WSH",
"role": "pitcher",
"espn_rank": 722,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 722,
"gp_value": 18.0,
"gp_rank": 409,
"gs_value": 18.0,
"gs_rank": 112,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 5.568,
"era_rank": null,
"w_value": 2.0,
"w_rank": 310,
"l_value": 8.0,
"l_rank": 53,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 85.2,
"ip_rank": 147,
"h_value": 80.0,
"h_rank": 146,
"er_value": 53.0,
"er_rank": 93,
"hr_value": 15.0,
"hr_rank": 86,
"bb_value": 40.0,
"bb_rank": 80,
"k_value": 87.0,
"k_rank": 134,
"k_per_9_value": 9.140078,
"k_per_9_rank": 24,
"whip_value": 1.4007,
"whip_rank": null,
"war_value": -0.33,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.0435,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.0435,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.026,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.1457,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9954,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 4.2,
"predicted_H": 3,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 4,
"predicted_SO": 3,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 21,
"Pitches": 93,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 5",
"detail": "Actual minus predicted hits was +5."
}
],
"provenance": {
"prediction": "output/games/20260907_WAS@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"
}
} |
| 20260907 | 20260907_WAS@SD | home | Nick Pivetta | Nick Pivetta | True | 5.0 | 5.0 | 0 | 4 | 0 | -4 | 3/2 | 0/0 | 7/2 | Last 10 before this game (4 available){
"model_context": {
"embedded_season": {
"ERA": 4.5,
"WHIP": 1.125,
"IP": 16.0,
"games_started": null,
"games_pitched": 4,
"role_avg_IP": 4.0,
"recent_avg_IP": 4.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.5768,
"sample_weight": 0.45,
"run_prevention_factor": 0.951,
"strikeout_factor": 1.0396,
"walk_factor": 0.9991,
"homer_factor": 0.9131,
"regression_flag": "positive_pitcher_regression",
"k_percent": 36.4,
"bb_percent": 9.1,
"woba": 0.248,
"xwoba": 0.212,
"barrel_percent": 2.8,
"hard_hit_percent": 30.6,
"whiff_percent": 26.1
},
"espn_rank": {
"rank": 385,
"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": "601713",
"report_date": "20260907",
"season_year": 2026,
"rows_used": 4,
"reference_playing_time": 4.333,
"windows": {
"last_5": {
"games": 4,
"totals": {
"IP": 16.0,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 6.0,
"SO": 24.0,
"HR": 0.0,
"BF": 66.0,
"Pitches": 283.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 1.5,
"SO": 6.0,
"HR": 0.0,
"BF": 16.5,
"Pitches": 70.75
},
"rates": {
"ERA": 4.5,
"WHIP": 1.125,
"ER_per_IP": 0.5,
"H_per_IP": 0.75,
"BB_per_IP": 0.375,
"SO_per_IP": 1.5,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 4,
"totals": {
"IP": 16.0,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 6.0,
"SO": 24.0,
"HR": 0.0,
"BF": 66.0,
"Pitches": 283.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 1.5,
"SO": 6.0,
"HR": 0.0,
"BF": 16.5,
"Pitches": 70.75
},
"rates": {
"ERA": 4.5,
"WHIP": 1.125,
"ER_per_IP": 0.5,
"H_per_IP": 0.75,
"BB_per_IP": 0.375,
"SO_per_IP": 1.5,
"HR_per_IP": 0.0
}
},
"season": {
"games": 4,
"totals": {
"IP": 16.0,
"ER": 8.0,
"R": 8.0,
"H": 12.0,
"BB": 6.0,
"SO": 24.0,
"HR": 0.0,
"BF": 66.0,
"Pitches": 283.0
},
"per_game": {
"IP": 4.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 1.5,
"SO": 6.0,
"HR": 0.0,
"BF": 16.5,
"Pitches": 70.75
},
"rates": {
"ERA": 4.5,
"WHIP": 1.125,
"ER_per_IP": 0.5,
"H_per_IP": 0.75,
"BB_per_IP": 0.375,
"SO_per_IP": 1.5,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 4.1,
"predicted_ER": 2.091,
"predicted_H": 3.657,
"predicted_BB": 1.563,
"predicted_SO": 4.973,
"predicted_HR": 0.341,
"predicted_ERA": 4.4967,
"predicted_WHIP": 1.2471
}
},
"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.1,
"form": 4.1,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.091,
"final": 3.2073,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 3.657,
"final": 3.2728,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.563,
"final": 0.649,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.973,
"final": 6.1583,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.341,
"final": 1.8958,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.4967,
"final": 4.4967,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2471,
"final": 1.2471,
"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.0,
"ER": 8,
"H": 12,
"BB": 6,
"SO": 24,
"HR": 0,
"ERA": 4.5,
"WHIP": 1.125,
"K9": 13.5,
"HR9": 0.0,
"games_pitched": 4,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 4,
"error_prone": false
},
"games_count": 4,
"latest_game_date": "2026-04-12T00:00:00"
},
"recent_form_boost": 1.0043412315659959,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 4.333333333333333,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_BB": 0.0,
"predicted_SO": 7.0,
"predicted_HR": 3.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
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "601713",
"player_name": "Nick Pivetta",
"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": 0.0,
"predicted_ER": 4.0,
"predicted_H": 3.0,
"predicted_HR": 3.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": 4.0,
"predicted_H": 3.0,
"predicted_HR": 3.0,
"predicted_IP": 5.0,
"predicted_R": 4.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"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.0,
"delta": 0.6667,
"percent_delta": 0.1538,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 4.3333,
"after": 5.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"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.0,
"delta": 0.6667,
"percent_delta": 0.1539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 143,
"wins": 75,
"losses": 68,
"win_pct": 0.5245,
"runs_scored": 602.0,
"runs_allowed": 594.0,
"run_differential": 8.0,
"run_differential_per_game": 0.0559,
"avg_runs_scored": 4.2098,
"avg_runs_allowed": 4.1538,
"offense_index": 0.9373,
"defense_index": 1.0813,
"current_streak": "W1",
"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.0073
},
"opponent": {
"team": "WAS",
"games": 145,
"wins": 67,
"losses": 78,
"win_pct": 0.4621,
"runs_scored": 748.0,
"runs_allowed": 739.0,
"run_differential": 9.0,
"run_differential_per_game": 0.0621,
"avg_runs_scored": 5.1586,
"avg_runs_allowed": 5.0966,
"offense_index": 1.1485,
"defense_index": 0.8813,
"current_streak": "L4",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.1,
"avg_runs_allowed": 4.8,
"run_differential": 3.0
},
"available": true,
"quality_score": -0.0246
},
"edges": {
"quality_edge": 0.0173,
"offense_edge": -0.0627,
"opponent_offense_edge": 0.1485,
"defense_strength": 0.0813,
"opponent_defense_weakness": 0.1187,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9972,
"run_prevention": 1.0148,
"strikeout": 0.9886
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "601713",
"profile": {
"available": true,
"pitcher_id": "601713",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 57.0,
"k_percent": 36.4,
"bb_percent": 9.1,
"woba": 0.248,
"xwoba": 0.212,
"sweet_spot_percent": 25.0,
"barrel_batted_rate": 2.8,
"hard_hit_percent": 30.6,
"avg_best_speed": 76.3947,
"avg_hyper_speed": 92.1844,
"whiff_percent": 26.1,
"swing_percent": 48.8
},
"league_medians": {
"pa": 117.0,
"k_percent": 22.0,
"bb_percent": 9.2,
"woba": 0.316,
"xwoba": 0.311,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.61,
"avg_hyper_speed": 93.9158,
"whiff_percent": 25.1,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6558,
"command_and_miss": 0.9807,
"regression_edge": 1.0286,
"xwoba_edge": 2.5,
"barrel_edge": 0.9556,
"hard_hit_edge": 1.0429,
"whiff_edge": 0.1429,
"bb_edge": 0.025,
"pitch_design_score": -0.0422
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "601713",
"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.12367108655921,
"release_spin_rate": 2446.136265056221,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.12367108655921,
"release_spin_rate": 2446.136265056221,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1237,
"release_spin_rate": 2446.1363,
"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.0422,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3013,
"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.5768,
"sample_weight": 0.45,
"run_prevention_factor": 0.951,
"strikeout_factor": 1.0396,
"walk_factor": 0.9991,
"homer_factor": 0.9131,
"woba_minus_xwoba": 0.036,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": true,
"player_id": "601713",
"espn_id": 36071,
"player_name": "Nick Pivetta",
"team": "SD",
"role": "pitcher",
"espn_rank": 385,
"espn_total_ranked": 858,
"metrics": {
"espn_rank": 385,
"gp_value": 4.0,
"gp_rank": 662,
"gs_value": 4.0,
"gs_rank": 232,
"qs_value": 0.0,
"qs_rank": 208,
"era_value": 4.5,
"era_rank": null,
"w_value": 1.0,
"w_rank": 405,
"l_value": 2.0,
"l_rank": 325,
"sv_value": 0.0,
"sv_rank": 246,
"hld_value": 0.0,
"hld_rank": 350,
"ip_value": 16.0,
"ip_rank": 549,
"h_value": 12.0,
"h_rank": 599,
"er_value": 8.0,
"er_rank": 574,
"hr_value": 0.0,
"hr_rank": 741,
"bb_value": 6.0,
"bb_rank": 576,
"k_value": 24.0,
"k_rank": 449,
"k_per_9_value": 13.5,
"k_per_9_rank": 22,
"whip_value": 1.125,
"whip_rank": null,
"war_value": 0.11,
"war_rank": null
},
"source": "espn_statistics_byathlete"
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9779,
"adjusted": 2
},
"predicted_H": {
"original": 3.0,
"factor": 0.9779,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.9996,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9609,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0178,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 4,
"predicted_ER": 4,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 19,
"Pitches": 84,
"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": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -3."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 4 ER."
}
],
"provenance": {
"prediction": "output/games/20260907_WAS@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"
}
} |