| 20260929 | 20260929_BOS@NYY | away | Payton Tolle | Payton Tolle | True | 5.2 | 4.2 | -3 | 2 | 1 | -1 | 4/5 | 3/1 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.0269058295964126,
"WHIP": 1.0964125560538118,
"IP": 148.2,
"games_started": null,
"games_pitched": 26,
"role_avg_IP": 5.718,
"recent_avg_IP": 5.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7976,
"sample_weight": 1.0,
"run_prevention_factor": 0.9322,
"strikeout_factor": 1.0514,
"walk_factor": 0.948,
"homer_factor": 0.9104,
"regression_flag": "neutral",
"k_percent": 28.4,
"bb_percent": 6.6,
"woba": 0.285,
"xwoba": 0.255,
"barrel_percent": 6.0,
"hard_hit_percent": 34.5,
"whiff_percent": 27.9
},
"espn_rank": {
"rank": 43,
"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": "801139",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.2,
"ER": 9.0,
"R": 9.0,
"H": 26.0,
"BB": 7.0,
"SO": 37.0,
"HR": 2.0,
"BF": 120.0,
"Pitches": 471.0
},
"per_game": {
"IP": 5.2,
"ER": 1.8,
"R": 1.8,
"H": 5.2,
"BB": 1.4,
"SO": 7.4,
"HR": 0.4,
"BF": 24.0,
"Pitches": 94.2
},
"rates": {
"ERA": 2.8256,
"WHIP": 1.1512,
"ER_per_IP": 0.31395,
"H_per_IP": 0.90698,
"BB_per_IP": 0.24419,
"SO_per_IP": 1.2907,
"HR_per_IP": 0.06977
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 17.0,
"R": 17.0,
"H": 50.0,
"BB": 14.0,
"SO": 75.0,
"HR": 6.0,
"BF": 236.0,
"Pitches": 922.0
},
"per_game": {
"IP": 6.0,
"ER": 1.7,
"R": 1.7,
"H": 5.0,
"BB": 1.4,
"SO": 7.5,
"HR": 0.6,
"BF": 23.6,
"Pitches": 92.2
},
"rates": {
"ERA": 2.5932,
"WHIP": 1.0847,
"ER_per_IP": 0.28814,
"H_per_IP": 0.84746,
"BB_per_IP": 0.23729,
"SO_per_IP": 1.27119,
"HR_per_IP": 0.10169
}
},
"season": {
"games": 26,
"totals": {
"IP": 148.2,
"ER": 50.0,
"R": 54.0,
"H": 123.0,
"BB": 40.0,
"SO": 171.0,
"HR": 15.0,
"BF": 603.0,
"Pitches": 2282.0
},
"per_game": {
"IP": 5.2,
"ER": 1.9231,
"R": 2.0769,
"H": 4.7308,
"BB": 1.5385,
"SO": 6.5769,
"HR": 0.5769,
"BF": 23.1923,
"Pitches": 87.7692
},
"rates": {
"ERA": 3.0269,
"WHIP": 1.0964,
"ER_per_IP": 0.33632,
"H_per_IP": 0.82735,
"BB_per_IP": 0.26906,
"SO_per_IP": 1.15022,
"HR_per_IP": 0.1009
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 1.973,
"predicted_H": 5.123,
"predicted_BB": 1.545,
"predicted_SO": 6.941,
"predicted_HR": 0.56,
"predicted_ERA": 3.0799,
"predicted_WHIP": 1.1567
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.973,
"final": 1.9843,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 5.123,
"final": 4.6534,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.545,
"final": 2.1534,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 6.941,
"final": 6.9657,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.56,
"final": 0.744,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0799,
"final": 3.0799,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1567,
"final": 1.1567,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.0,
"ER": 17,
"H": 50,
"BB": 14,
"SO": 75,
"HR": 6,
"ERA": 2.5932203389830506,
"WHIP": 1.0847457627118642,
"K9": 11.440677966101694,
"HR9": 0.9152542372881355,
"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-22T00:00:00"
},
"recent_form_boost": 0.7792963310675082,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_BB": 3.0,
"predicted_SO": 7.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 2,
"predicted_H": 4,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "801139",
"player_name": "Payton Tolle",
"position": "Starter",
"team": "BOS",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.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": 4.0,
"predicted_HR": 1.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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"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": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 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
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "BOS",
"games": 162,
"wins": 87,
"losses": 75,
"win_pct": 0.537,
"runs_scored": 689.0,
"runs_allowed": 611.0,
"run_differential": 78.0,
"run_differential_per_game": 0.4815,
"avg_runs_scored": 4.2531,
"avg_runs_allowed": 3.7716,
"offense_index": 0.9463,
"defense_index": 1.1917,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 2.5,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0904
},
"opponent": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.5776,
"runs_scored": 739.0,
"runs_allowed": 601.0,
"run_differential": 138.0,
"run_differential_per_game": 0.8571,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.7329,
"offense_index": 1.0213,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1708
},
"edges": {
"quality_edge": -0.0804,
"offense_edge": -0.0537,
"opponent_offense_edge": 0.0213,
"defense_strength": 0.1917,
"opponent_defense_weakness": -0.204,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0017,
"run_prevention": 0.9883,
"strikeout": 0.9959
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "801139",
"profile": {
"available": true,
"pitcher_id": "801139",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 570.0,
"k_percent": 28.4,
"bb_percent": 6.6,
"woba": 0.285,
"xwoba": 0.255,
"sweet_spot_percent": 30.6,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 34.5,
"avg_best_speed": 76.2521,
"avg_hyper_speed": 93.4995,
"whiff_percent": 27.9,
"swing_percent": 55.1
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9357,
"command_and_miss": 0.67,
"regression_edge": 0.8571,
"xwoba_edge": 1.6286,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.4857,
"whiff_edge": 0.3857,
"bb_edge": 0.65,
"pitch_design_score": 0.1718
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "801139",
"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": 92.93252132522656,
"release_spin_rate": 2264.4127469236832,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 92.93252132522656,
"release_spin_rate": 2264.4127469236832,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.9325,
"release_spin_rate": 2264.4127,
"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.1718,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2273,
"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.7976,
"sample_weight": 1.0,
"run_prevention_factor": 0.9322,
"strikeout_factor": 1.0514,
"walk_factor": 0.948,
"homer_factor": 0.9104,
"woba_minus_xwoba": 0.03,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "801139",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9322,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9322,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9104,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0514,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 4,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 7,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 24,
"Pitches": 103,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
}
],
"provenance": {
"prediction": "output/games/20260929_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260929 | 20260929_BOS@NYY | home | Cam Schlittler | Cam Schlittler | True | 6.0 | 6.1 | 1 | 0 | 0 | 0 | 1/2 | 2/1 | 9/10 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 1.9518072289156627,
"WHIP": 0.919104991394148,
"IP": 193.2,
"games_started": null,
"games_pitched": 33,
"role_avg_IP": 5.869,
"recent_avg_IP": 6.0,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7134,
"sample_weight": 1.0,
"run_prevention_factor": 0.9394,
"strikeout_factor": 1.0771,
"walk_factor": 0.944,
"homer_factor": 0.9612,
"regression_flag": "neutral",
"k_percent": 31.4,
"bb_percent": 6.4,
"woba": 0.243,
"xwoba": 0.262,
"barrel_percent": 7.3,
"hard_hit_percent": 38.3,
"whiff_percent": 29.4
},
"espn_rank": {
"rank": 2,
"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": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "693645",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 33,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 30.0,
"ER": 4.0,
"R": 7.0,
"H": 12.0,
"BB": 7.0,
"SO": 38.0,
"HR": 2.0,
"BF": 110.0,
"Pitches": 457.0
},
"per_game": {
"IP": 6.0,
"ER": 0.8,
"R": 1.4,
"H": 2.4,
"BB": 1.4,
"SO": 7.6,
"HR": 0.4,
"BF": 22.0,
"Pitches": 91.4
},
"rates": {
"ERA": 1.2,
"WHIP": 0.6333,
"ER_per_IP": 0.13333,
"H_per_IP": 0.4,
"BB_per_IP": 0.23333,
"SO_per_IP": 1.26667,
"HR_per_IP": 0.06667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 57.0,
"ER": 11.0,
"R": 14.0,
"H": 31.0,
"BB": 23.0,
"SO": 74.0,
"HR": 4.0,
"BF": 223.0,
"Pitches": 931.0
},
"per_game": {
"IP": 5.2,
"ER": 1.1,
"R": 1.4,
"H": 3.1,
"BB": 2.3,
"SO": 7.4,
"HR": 0.4,
"BF": 22.3,
"Pitches": 93.1
},
"rates": {
"ERA": 1.7368,
"WHIP": 0.9474,
"ER_per_IP": 0.19298,
"H_per_IP": 0.54386,
"BB_per_IP": 0.40351,
"SO_per_IP": 1.29825,
"HR_per_IP": 0.07018
}
},
"season": {
"games": 33,
"totals": {
"IP": 193.2,
"ER": 42.0,
"R": 52.0,
"H": 129.0,
"BB": 49.0,
"SO": 239.0,
"HR": 16.0,
"BF": 761.0,
"Pitches": 3041.0
},
"per_game": {
"IP": 6.0,
"ER": 1.2727,
"R": 1.5758,
"H": 3.9091,
"BB": 1.4848,
"SO": 7.2424,
"HR": 0.4848,
"BF": 23.0606,
"Pitches": 92.1515
},
"rates": {
"ERA": 1.9518,
"WHIP": 0.9191,
"ER_per_IP": 0.21687,
"H_per_IP": 0.66609,
"BB_per_IP": 0.25301,
"SO_per_IP": 1.23408,
"HR_per_IP": 0.08262
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.274,
"predicted_H": 3.344,
"predicted_BB": 1.814,
"predicted_SO": 7.238,
"predicted_HR": 0.48,
"predicted_ERA": 1.9433,
"predicted_WHIP": 0.8744
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4056,
"form_weight": 0.5944,
"form_reliability": 0.8684,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.274,
"final": 0.7573,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 3.344,
"final": 2.3933,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.814,
"final": 1.8894,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 9.0,
"form": 7.238,
"final": 7.9527,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.48,
"final": 0.2853,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9433,
"final": 1.9433,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8744,
"final": 0.8744,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 57.0,
"ER": 11,
"H": 31,
"BB": 23,
"SO": 74,
"HR": 4,
"ERA": 1.736842105263158,
"WHIP": 0.9473684210526315,
"K9": 11.68421052631579,
"HR9": 0.631578947368421,
"games_pitched": 10,
"quality_starts": 6,
"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-24T00:00:00"
},
"recent_form_boost": 0.6904572300778384,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_BB": 2.0,
"predicted_SO": 9.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 33.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8684,
"prior_weight": 0.1316
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.0,
"predicted_ER": 0,
"predicted_H": 1,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "693645",
"player_name": "Cam Schlittler",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 9.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 0.0,
"predicted_SO": 9.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.5776,
"runs_scored": 739.0,
"runs_allowed": 601.0,
"run_differential": 138.0,
"run_differential_per_game": 0.8571,
"avg_runs_scored": 4.5901,
"avg_runs_allowed": 3.7329,
"offense_index": 1.0213,
"defense_index": 1.204,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.6,
"avg_runs_allowed": 4.5,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1708
},
"opponent": {
"team": "BOS",
"games": 162,
"wins": 87,
"losses": 75,
"win_pct": 0.537,
"runs_scored": 689.0,
"runs_allowed": 611.0,
"run_differential": 78.0,
"run_differential_per_game": 0.4815,
"avg_runs_scored": 4.2531,
"avg_runs_allowed": 3.7716,
"offense_index": 0.9463,
"defense_index": 1.1917,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 2.1,
"avg_runs_allowed": 2.5,
"run_differential": -4.0
},
"available": true,
"quality_score": 0.0904
},
"edges": {
"quality_edge": 0.0804,
"offense_edge": 0.0213,
"opponent_offense_edge": -0.0537,
"defense_strength": 0.204,
"opponent_defense_weakness": -0.1917,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0115,
"run_prevention": 0.967,
"strikeout": 1.0067
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "693645",
"profile": {
"available": true,
"pitcher_id": "693645",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 691.0,
"k_percent": 31.4,
"bb_percent": 6.4,
"woba": 0.243,
"xwoba": 0.262,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 7.3,
"hard_hit_percent": 38.3,
"avg_best_speed": 77.6999,
"avg_hyper_speed": 93.7524,
"whiff_percent": 29.4,
"swing_percent": 52.0
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8909,
"command_and_miss": 0.9479,
"regression_edge": -0.5429,
"xwoba_edge": 1.4286,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.0571,
"whiff_edge": 0.6,
"bb_edge": 0.7,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "693645",
"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": 95.84565678559713,
"release_spin_rate": 2515.855995429108,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 95.84565678559713,
"release_spin_rate": 2515.855995429108,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 95.8457,
"release_spin_rate": 2515.856,
"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.7134,
"sample_weight": 1.0,
"run_prevention_factor": 0.9394,
"strikeout_factor": 1.0771,
"walk_factor": 0.944,
"homer_factor": 0.9612,
"woba_minus_xwoba": -0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "693645",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9394,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.9394,
"adjusted": 3
},
"predicted_BB": {
"original": 1.0,
"factor": 0.944,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9612,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0771,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 1,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 2,
"predicted_SO": 9,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 21,
"Pitches": 99,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
}
],
"provenance": {
"prediction": "output/games/20260929_BOS@NYY.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260929 | 20260929_CHC@SD | away | Matthew Boyd | Matthew Boyd | True | 6.0 | 4.0 | -6 | 5 | 4 | -1 | 9/5 | 1/1 | 7/4 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.9078947368421053,
"WHIP": 1.2078947368421051,
"IP": 126.2,
"games_started": null,
"games_pitched": 22,
"role_avg_IP": 5.758,
"recent_avg_IP": 5.933,
"last_start_IP": 7.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.2585,
"sample_weight": 1.0,
"run_prevention_factor": 1.022,
"strikeout_factor": 0.9629,
"walk_factor": 0.966,
"homer_factor": 1.0226,
"regression_flag": "neutral",
"k_percent": 18.5,
"bb_percent": 7.5,
"woba": 0.303,
"xwoba": 0.33,
"barrel_percent": 7.7,
"hard_hit_percent": 37.6,
"whiff_percent": 22.3
},
"espn_rank": {
"rank": 184,
"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": "571510",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.2,
"ER": 12.0,
"R": 13.0,
"H": 26.0,
"BB": 9.0,
"SO": 20.0,
"HR": 0.0,
"BF": 119.0,
"Pitches": 446.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.6,
"H": 5.2,
"BB": 1.8,
"SO": 4.0,
"HR": 0.0,
"BF": 23.8,
"Pitches": 89.2
},
"rates": {
"ERA": 3.6404,
"WHIP": 1.1798,
"ER_per_IP": 0.40449,
"H_per_IP": 0.8764,
"BB_per_IP": 0.30337,
"SO_per_IP": 0.67416,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 30.0,
"R": 33.0,
"H": 54.0,
"BB": 20.0,
"SO": 36.0,
"HR": 9.0,
"BF": 246.0,
"Pitches": 913.0
},
"per_game": {
"IP": 6.0,
"ER": 3.0,
"R": 3.3,
"H": 5.4,
"BB": 2.0,
"SO": 3.6,
"HR": 0.9,
"BF": 24.6,
"Pitches": 91.3
},
"rates": {
"ERA": 4.4505,
"WHIP": 1.2198,
"ER_per_IP": 0.49451,
"H_per_IP": 0.89011,
"BB_per_IP": 0.32967,
"SO_per_IP": 0.59341,
"HR_per_IP": 0.14835
}
},
"season": {
"games": 22,
"totals": {
"IP": 126.2,
"ER": 55.0,
"R": 59.0,
"H": 114.0,
"BB": 39.0,
"SO": 96.0,
"HR": 15.0,
"BF": 520.0,
"Pitches": 1957.0
},
"per_game": {
"IP": 5.2,
"ER": 2.5,
"R": 2.6818,
"H": 5.1818,
"BB": 1.7727,
"SO": 4.3636,
"HR": 0.6818,
"BF": 23.6364,
"Pitches": 88.9545
},
"rates": {
"ERA": 3.9079,
"WHIP": 1.2079,
"ER_per_IP": 0.43421,
"H_per_IP": 0.9,
"BB_per_IP": 0.30789,
"SO_per_IP": 0.75789,
"HR_per_IP": 0.11842
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 2.706,
"predicted_H": 5.376,
"predicted_BB": 1.936,
"predicted_SO": 4.24,
"predicted_HR": 0.53,
"predicted_ERA": 4.0957,
"predicted_WHIP": 1.2297
}
},
"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": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 5.0,
"form": 2.706,
"final": 3.6884,
"source": "model_form_blend"
},
"predicted_H": {
"model": 9.0,
"form": 5.376,
"final": 6.928,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.936,
"final": 1.5352,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 7.0,
"form": 4.24,
"final": 5.422,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 3.0,
"form": 0.53,
"final": 1.5878,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.0957,
"final": 4.0957,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2297,
"final": 1.2297,
"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.2,
"ER": 30,
"H": 54,
"BB": 20,
"SO": 36,
"HR": 9,
"ERA": 4.450549450549451,
"WHIP": 1.2197802197802199,
"K9": 5.340659340659341,
"HR9": 1.3351648351648353,
"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-24T00:00:00"
},
"recent_form_boost": 0.9916217175454372,
"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": 9.0,
"predicted_BB": 1.0,
"predicted_SO": 7.0,
"predicted_HR": 3.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": "571510",
"player_name": "Matthew Boyd",
"position": "Starter",
"team": "CHC",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 3.0,
"predicted_IP": 6.0,
"predicted_SO": 7.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 5.0,
"predicted_H": 9.0,
"predicted_HR": 3.0,
"predicted_IP": 6.0,
"predicted_R": 5.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": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 9.0,
"after": 9.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 3.0,
"after": 3.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": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHC",
"games": 162,
"wins": 89,
"losses": 73,
"win_pct": 0.5494,
"runs_scored": 850.0,
"runs_allowed": 703.0,
"run_differential": 147.0,
"run_differential_per_game": 0.9074,
"avg_runs_scored": 5.2469,
"avg_runs_allowed": 4.3395,
"offense_index": 1.1673,
"defense_index": 1.0358,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.153
},
"opponent": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617,
"runs_scored": 722.0,
"runs_allowed": 681.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2531,
"avg_runs_scored": 4.4568,
"avg_runs_allowed": 4.2037,
"offense_index": 0.9915,
"defense_index": 1.0693,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.5,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1884
},
"edges": {
"quality_edge": -0.0354,
"offense_edge": 0.1673,
"opponent_offense_edge": -0.0085,
"defense_strength": 0.0358,
"opponent_defense_weakness": -0.0693,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 1.0,
"run_prevention": 0.9968,
"strikeout": 0.9996
},
"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": 473.0,
"k_percent": 18.5,
"bb_percent": 7.5,
"woba": 0.303,
"xwoba": 0.33,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.1423,
"avg_hyper_speed": 93.9352,
"whiff_percent": 22.3,
"swing_percent": 49.2
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.1499,
"command_and_miss": -0.2914,
"regression_edge": -0.7714,
"xwoba_edge": -0.5143,
"barrel_edge": -0.1111,
"hard_hit_edge": 0.0429,
"whiff_edge": -0.4143,
"bb_edge": 0.425,
"pitch_design_score": -0.2702
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "571510",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 94,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.0398205022295,
"release_spin_rate": 2211.404515069364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 94,
"pitch_usage": 0.0,
"release_speed": 85.0398205022295,
"release_spin_rate": 2211.404515069364,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0398,
"release_spin_rate": 2211.4045,
"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.2702,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -1.9297,
"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.2585,
"sample_weight": 1.0,
"run_prevention_factor": 1.022,
"strikeout_factor": 0.9629,
"walk_factor": 0.966,
"homer_factor": 1.0226,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "571510",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.022,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.022,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 0.966,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0226,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 0.9629,
"adjusted": 4
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.0,
"predicted_H": 9,
"predicted_R": 5,
"predicted_ER": 5,
"predicted_BB": 1,
"predicted_SO": 7,
"predicted_HR": 3,
"box_score_synced": true,
"BF": 29,
"Pitches": 117,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
}
],
"provenance": {
"prediction": "output/games/20260929_CHC@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"
}
} |
| 20260929 | 20260929_CHC@SD | home | Michael King | Michael King | True | 5.2 | 7.0 | 4 | 3 | 0 | -3 | 5/1 | 2/3 | 5/8 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.210810810810811,
"WHIP": 1.1783783783783783,
"IP": 185.0,
"games_started": null,
"games_pitched": 32,
"role_avg_IP": 5.781,
"recent_avg_IP": 5.8,
"last_start_IP": 4.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0886,
"sample_weight": 1.0,
"run_prevention_factor": 1.0075,
"strikeout_factor": 0.9897,
"walk_factor": 1.0,
"homer_factor": 0.9966,
"regression_flag": "neutral",
"k_percent": 21.0,
"bb_percent": 9.2,
"woba": 0.295,
"xwoba": 0.322,
"barrel_percent": 8.2,
"hard_hit_percent": 32.7,
"whiff_percent": 24.5
},
"espn_rank": {
"rank": 17,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "650633",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.0,
"ER": 10.0,
"R": 10.0,
"H": 26.0,
"BB": 10.0,
"SO": 24.0,
"HR": 2.0,
"BF": 121.0,
"Pitches": 473.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0,
"R": 2.0,
"H": 5.2,
"BB": 2.0,
"SO": 4.8,
"HR": 0.4,
"BF": 24.2,
"Pitches": 94.6
},
"rates": {
"ERA": 3.1034,
"WHIP": 1.2414,
"ER_per_IP": 0.34483,
"H_per_IP": 0.89655,
"BB_per_IP": 0.34483,
"SO_per_IP": 0.82759,
"HR_per_IP": 0.06897
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.2,
"ER": 19.0,
"R": 20.0,
"H": 51.0,
"BB": 20.0,
"SO": 50.0,
"HR": 7.0,
"BF": 242.0,
"Pitches": 951.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.0,
"H": 5.1,
"BB": 2.0,
"SO": 5.0,
"HR": 0.7,
"BF": 24.2,
"Pitches": 95.1
},
"rates": {
"ERA": 2.8659,
"WHIP": 1.1899,
"ER_per_IP": 0.31844,
"H_per_IP": 0.85475,
"BB_per_IP": 0.3352,
"SO_per_IP": 0.83799,
"HR_per_IP": 0.11732
}
},
"season": {
"games": 32,
"totals": {
"IP": 185.0,
"ER": 66.0,
"R": 68.0,
"H": 148.0,
"BB": 70.0,
"SO": 159.0,
"HR": 20.0,
"BF": 757.0,
"Pitches": 2981.0
},
"per_game": {
"IP": 5.2,
"ER": 2.0625,
"R": 2.125,
"H": 4.625,
"BB": 2.1875,
"SO": 4.9688,
"HR": 0.625,
"BF": 23.6562,
"Pitches": 93.1562
},
"rates": {
"ERA": 3.2108,
"WHIP": 1.1784,
"ER_per_IP": 0.35676,
"H_per_IP": 0.8,
"BB_per_IP": 0.37838,
"SO_per_IP": 0.85946,
"HR_per_IP": 0.10811
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.086,
"predicted_H": 5.07,
"predicted_BB": 2.032,
"predicted_SO": 4.907,
"predicted_HR": 0.584,
"predicted_ERA": 3.2544,
"predicted_WHIP": 1.2314
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.086,
"final": 2.4581,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.07,
"final": 5.0415,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 2.032,
"final": 2.019,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 4.907,
"final": 4.1307,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.584,
"final": 1.1604,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.2544,
"final": 3.2544,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2314,
"final": 1.2314,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.2,
"ER": 19,
"H": 51,
"BB": 20,
"SO": 50,
"HR": 7,
"ERA": 2.865921787709497,
"WHIP": 1.1899441340782122,
"K9": 7.541899441340782,
"HR9": 1.0558659217877093,
"games_pitched": 10,
"quality_starts": 8,
"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-22T00:00:00"
},
"recent_form_boost": 0.8126052033333923,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.666666666666667,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_BB": 2.0,
"predicted_SO": 3.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.2,
"predicted_ER": 3,
"predicted_H": 5,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "650633",
"player_name": "Michael King",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.6667,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 2.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 5.0,
"delta": 2.0,
"percent_delta": 0.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617,
"runs_scored": 722.0,
"runs_allowed": 681.0,
"run_differential": 41.0,
"run_differential_per_game": 0.2531,
"avg_runs_scored": 4.4568,
"avg_runs_allowed": 4.2037,
"offense_index": 0.9915,
"defense_index": 1.0693,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 6.3,
"avg_runs_allowed": 4.5,
"run_differential": 18.0
},
"available": true,
"quality_score": 0.1884
},
"opponent": {
"team": "CHC",
"games": 162,
"wins": 89,
"losses": 73,
"win_pct": 0.5494,
"runs_scored": 850.0,
"runs_allowed": 703.0,
"run_differential": 147.0,
"run_differential_per_game": 0.9074,
"avg_runs_scored": 5.2469,
"avg_runs_allowed": 4.3395,
"offense_index": 1.1673,
"defense_index": 1.0358,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.1,
"avg_runs_allowed": 3.3,
"run_differential": 8.0
},
"available": true,
"quality_score": 0.153
},
"edges": {
"quality_edge": 0.0354,
"offense_edge": -0.0085,
"opponent_offense_edge": 0.1673,
"defense_strength": 0.0693,
"opponent_defense_weakness": -0.0358,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 0.9968,
"run_prevention": 1.0181,
"strikeout": 0.9877
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "650633",
"profile": {
"available": true,
"pitcher_id": "650633",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 730.0,
"k_percent": 21.0,
"bb_percent": 9.2,
"woba": 0.295,
"xwoba": 0.322,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 32.7,
"avg_best_speed": 75.9245,
"avg_hyper_speed": 93.0549,
"whiff_percent": 24.5,
"swing_percent": 46.5
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0356,
"command_and_miss": -0.1057,
"regression_edge": -0.7714,
"xwoba_edge": -0.2857,
"barrel_edge": -0.2222,
"hard_hit_edge": 0.7429,
"whiff_edge": -0.1,
"bb_edge": 0.0,
"pitch_design_score": -0.0483
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "650633",
"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": 89.00166640531685,
"release_spin_rate": 2291.8143101549963,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 89.00166640531685,
"release_spin_rate": 2291.8143101549963,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.0017,
"release_spin_rate": 2291.8143,
"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.0483,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.345,
"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.0886,
"sample_weight": 1.0,
"run_prevention_factor": 1.0075,
"strikeout_factor": 0.9897,
"walk_factor": 1.0,
"homer_factor": 0.9966,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650633",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 1.0075,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 1.0075,
"adjusted": 5
},
"predicted_BB": {
"original": 2.0,
"factor": 1.0,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9966,
"adjusted": 0
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9897,
"adjusted": 5
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.2,
"predicted_H": 5,
"predicted_R": 3,
"predicted_ER": 3,
"predicted_BB": 2,
"predicted_SO": 5,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 24,
"Pitches": 97,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "DIRECT_ER_MISS",
"severity": "error",
"title": "Earned-run miss of 3",
"detail": "Actual minus predicted earned runs was -3."
},
{
"code": "HIT_COMPONENT_MISS",
"severity": "warning",
"title": "Hits missed by 4",
"detail": "Actual minus predicted hits was -4."
},
{
"code": "HOMER_COMPONENT_MISS",
"severity": "warning",
"title": "Home-run component missed",
"detail": "Actual minus predicted home runs was -2."
},
{
"code": "MISSED_SHUTDOWN",
"severity": "error",
"title": "Model missed a shutdown outing",
"detail": "The pitcher allowed zero earned runs after a projection of 3 ER."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: False; actual quality start: True."
}
],
"provenance": {
"prediction": "output/games/20260929_CHC@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"
}
} |
| 20260929 | 20260929_CHW@HOU | away | Hagen Smith | Hagen Smith | True | 5.0 | 3.0 | -6 | 1 | 0 | -1 | 3/2 | 1/0 | 6/1 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 0.9642857142857143,
"WHIP": 0.9285714285714286,
"IP": 28.0,
"games_started": null,
"games_pitched": 17,
"role_avg_IP": 2.0,
"recent_avg_IP": 2.0,
"last_start_IP": 2.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.4802,
"sample_weight": 0.45,
"run_prevention_factor": 0.9592,
"strikeout_factor": 1.0674,
"walk_factor": 1.0477,
"homer_factor": 0.921,
"regression_flag": "negative_pitcher_regression",
"k_percent": 37.3,
"bb_percent": 14.5,
"woba": 0.211,
"xwoba": 0.243,
"barrel_percent": 1.9,
"hard_hit_percent": 34.0,
"whiff_percent": 36.2
},
"espn_rank": {
"rank": 144,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 28.0,
"season_ERA": 0.964,
"season_WHIP": 0.929,
"reason": "credible starter season workload and run-prevention profile"
},
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.762,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5354,
"prior_weight": 0.4646
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696146",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 17,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.0,
"ER": 3.0,
"R": 3.0,
"H": 3.0,
"BB": 6.0,
"SO": 9.0,
"HR": 0.0,
"BF": 27.0,
"Pitches": 119.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6,
"R": 0.6,
"H": 0.6,
"BB": 1.2,
"SO": 1.8,
"HR": 0.0,
"BF": 5.4,
"Pitches": 23.8
},
"rates": {
"ERA": 4.5,
"WHIP": 1.5,
"ER_per_IP": 0.5,
"H_per_IP": 0.5,
"BB_per_IP": 1.0,
"SO_per_IP": 1.5,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 17.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 6.0,
"SO": 25.0,
"HR": 0.0,
"BF": 64.0,
"Pitches": 260.0
},
"per_game": {
"IP": 1.2,
"ER": 0.3,
"R": 0.3,
"H": 0.8,
"BB": 0.6,
"SO": 2.5,
"HR": 0.0,
"BF": 6.4,
"Pitches": 26.0
},
"rates": {
"ERA": 1.5882,
"WHIP": 0.8235,
"ER_per_IP": 0.17647,
"H_per_IP": 0.47059,
"BB_per_IP": 0.35294,
"SO_per_IP": 1.47059,
"HR_per_IP": 0.0
}
},
"season": {
"games": 17,
"totals": {
"IP": 28.0,
"ER": 3.0,
"R": 3.0,
"H": 10.0,
"BB": 16.0,
"SO": 41.0,
"HR": 0.0,
"BF": 109.0,
"Pitches": 465.0
},
"per_game": {
"IP": 1.2,
"ER": 0.1765,
"R": 0.1765,
"H": 0.5882,
"BB": 0.9412,
"SO": 2.4118,
"HR": 0.0,
"BF": 6.4118,
"Pitches": 27.3529
},
"rates": {
"ERA": 0.9643,
"WHIP": 0.9286,
"ER_per_IP": 0.10714,
"H_per_IP": 0.35714,
"BB_per_IP": 0.57143,
"SO_per_IP": 1.46429,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 1.264,
"predicted_H": 2.208,
"predicted_BB": 1.706,
"predicted_SO": 3.851,
"predicted_HR": 0.217,
"predicted_ERA": 3.6297,
"predicted_WHIP": 1.2485
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5463,
"form_weight": 0.4537,
"form_reliability": 0.5354,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.762,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5354,
"prior_weight": 0.4646
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.264,
"final": 1.1198,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 2.208,
"final": 2.6407,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.706,
"final": 1.3203,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 3.851,
"final": 5.025,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.217,
"final": 1.191,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.6297,
"final": 3.6297,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2485,
"final": 1.2485,
"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": 17.0,
"ER": 3,
"H": 8,
"BB": 6,
"SO": 25,
"HR": 0,
"ERA": 1.588235294117647,
"WHIP": 0.8235294117647058,
"K9": 13.235294117647058,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"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-25T00:00:00"
},
"recent_form_boost": 0.8065493996415093,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_BB": 1.0,
"predicted_SO": 6.0,
"predicted_HR": 2.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.762,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5354,
"prior_weight": 0.4646
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 1,
"predicted_H": 3,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 0
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696146",
"player_name": "Hagen Smith",
"position": "Starter",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 3.0,
"predicted_HR": 2.0,
"predicted_IP": 5.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
},
"team_form_snapshot": {
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185,
"runs_scored": 776.0,
"runs_allowed": 720.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3457,
"avg_runs_scored": 4.7901,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0659,
"defense_index": 1.0111,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.128
},
"opponent": {
"team": "HOU",
"games": 162,
"wins": 81,
"losses": 81,
"win_pct": 0.5,
"runs_scored": 734.0,
"runs_allowed": 766.0,
"run_differential": -32.0,
"run_differential_per_game": -0.1975,
"avg_runs_scored": 4.5309,
"avg_runs_allowed": 4.7284,
"offense_index": 1.0082,
"defense_index": 0.9504,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.7,
"run_differential": 22.0
},
"available": true,
"quality_score": -0.0242
},
"edges": {
"quality_edge": 0.1522,
"offense_edge": 0.0659,
"opponent_offense_edge": 0.0082,
"defense_strength": 0.0111,
"opponent_defense_weakness": 0.0496,
"recent_win_pct_edge": 0.2
},
"player_factors": {
"ip": 1.0061,
"run_prevention": 0.9926,
"strikeout": 1.0039
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696146",
"profile": {
"available": true,
"pitcher_id": "696146",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 90.0,
"k_percent": 37.3,
"bb_percent": 14.5,
"woba": 0.211,
"xwoba": 0.243,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 1.9,
"hard_hit_percent": 34.0,
"avg_best_speed": 75.8598,
"avg_hyper_speed": 93.4182,
"whiff_percent": 36.2,
"swing_percent": 42.4
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4882,
"command_and_miss": 1.2621,
"regression_edge": -0.9143,
"xwoba_edge": 1.9714,
"barrel_edge": 1.1778,
"hard_hit_edge": 0.5571,
"whiff_edge": 1.5714,
"bb_edge": -1.325,
"pitch_design_score": -0.0374
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696146",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 28,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 28,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 28,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.1961,
"release_spin_rate": 2396.9611,
"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.0374,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2672,
"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.4802,
"sample_weight": 0.45,
"run_prevention_factor": 0.9592,
"strikeout_factor": 1.0674,
"walk_factor": 1.0477,
"homer_factor": 0.921,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "696146",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9816,
"adjusted": 0
},
"predicted_H": {
"original": 5.0,
"factor": 0.9816,
"adjusted": 5
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0215,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9645,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0303,
"adjusted": 7
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 3,
"predicted_R": 1,
"predicted_ER": 1,
"predicted_BB": 1,
"predicted_SO": 6,
"predicted_HR": 2,
"box_score_synced": true,
"BF": 19,
"Pitches": 76,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was -1."
},
{
"code": "WORKLOAD_MISS",
"severity": "warning",
"title": "Workload missed by at least two innings",
"detail": "The actual outing differed by -6 outs from the projected workload."
}
],
"provenance": {
"prediction": "output/games/20260929_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260929 | 20260929_CHW@HOU | home | AJ Blubaugh | AJ Blubaugh | True | 5.0 | 0.2 | -13 | 0 | 0 | 0 | 2/0 | 0/3 | 4/0 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 3.65625,
"WHIP": 1.2291666666666667,
"IP": 96.0,
"games_started": null,
"games_pitched": 64,
"role_avg_IP": 3.333,
"recent_avg_IP": 3.333,
"last_start_IP": 3.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": -0.0992,
"sample_weight": 1.0,
"run_prevention_factor": 1.0084,
"strikeout_factor": 1.024,
"walk_factor": 1.026,
"homer_factor": 1.0543,
"regression_flag": "neutral",
"k_percent": 23.4,
"bb_percent": 10.5,
"woba": 0.306,
"xwoba": 0.317,
"barrel_percent": 10.3,
"hard_hit_percent": 37.0,
"whiff_percent": 28.1
},
"espn_rank": {
"rank": 172,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": {
"applied": true,
"floor_IP": 5.0,
"season_IP": 96.0,
"season_ERA": 3.656,
"season_WHIP": 1.229,
"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": 19.755,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.798,
"prior_weight": 0.202
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "805123",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 64,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 6.0,
"R": 6.0,
"H": 4.0,
"BB": 4.0,
"SO": 3.0,
"HR": 1.0,
"BF": 23.0,
"Pitches": 88.0
},
"per_game": {
"IP": 1.0,
"ER": 1.2,
"R": 1.2,
"H": 0.8,
"BB": 0.8,
"SO": 0.6,
"HR": 0.2,
"BF": 4.6,
"Pitches": 17.6
},
"rates": {
"ERA": 10.8,
"WHIP": 1.6,
"ER_per_IP": 1.2,
"H_per_IP": 0.8,
"BB_per_IP": 0.8,
"SO_per_IP": 0.6,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.2,
"ER": 10.0,
"R": 10.0,
"H": 10.0,
"BB": 7.0,
"SO": 7.0,
"HR": 3.0,
"BF": 46.0,
"Pitches": 186.0
},
"per_game": {
"IP": 1.0,
"ER": 1.0,
"R": 1.0,
"H": 1.0,
"BB": 0.7,
"SO": 0.7,
"HR": 0.3,
"BF": 4.6,
"Pitches": 18.6
},
"rates": {
"ERA": 9.3103,
"WHIP": 1.7586,
"ER_per_IP": 1.03448,
"H_per_IP": 1.03448,
"BB_per_IP": 0.72414,
"SO_per_IP": 0.72414,
"HR_per_IP": 0.31034
}
},
"season": {
"games": 64,
"totals": {
"IP": 96.0,
"ER": 39.0,
"R": 41.0,
"H": 76.0,
"BB": 42.0,
"SO": 94.0,
"HR": 13.0,
"BF": 401.0,
"Pitches": 1640.0
},
"per_game": {
"IP": 1.1,
"ER": 0.6094,
"R": 0.6406,
"H": 1.1875,
"BB": 0.6562,
"SO": 1.4688,
"HR": 0.2031,
"BF": 6.2656,
"Pitches": 25.625
},
"rates": {
"ERA": 3.6562,
"WHIP": 1.2292,
"ER_per_IP": 0.40625,
"H_per_IP": 0.79167,
"BB_per_IP": 0.4375,
"SO_per_IP": 0.97917,
"HR_per_IP": 0.13542
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.0,
"predicted_ER": 1.653,
"predicted_H": 1.678,
"predicted_BB": 1.183,
"predicted_SO": 1.42,
"predicted_HR": 0.391,
"predicted_ERA": 7.9946,
"predicted_WHIP": 1.5373
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4353,
"form_weight": 0.5647,
"form_reliability": 0.798,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.755,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.798,
"prior_weight": 0.202
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 2.0,
"final": 3.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.653,
"final": 0.9334,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 1.678,
"final": 1.8182,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.183,
"final": 0.668,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 1.42,
"final": 2.5432,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.391,
"final": 0.2208,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 7.9946,
"final": 7.9946,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5373,
"final": 1.5373,
"source": "form_only"
}
}
},
"recent_form_analysis": {
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.2,
"ER": 10,
"H": 10,
"BB": 7,
"SO": 7,
"HR": 3,
"ERA": 9.310344827586208,
"WHIP": 1.7586206896551726,
"K9": 6.517241379310345,
"HR9": 2.793103448275862,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
},
"recent_form_boost": 1.1783773375379702,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 5.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_BB": 0.0,
"predicted_SO": 4.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 19.755,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.798,
"prior_weight": 0.202
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "805123",
"player_name": "AJ Blubaugh",
"position": "Starter",
"team": "HOU",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": "HOU",
"games": 162,
"wins": 81,
"losses": 81,
"win_pct": 0.5,
"runs_scored": 734.0,
"runs_allowed": 766.0,
"run_differential": -32.0,
"run_differential_per_game": -0.1975,
"avg_runs_scored": 4.5309,
"avg_runs_allowed": 4.7284,
"offense_index": 1.0082,
"defense_index": 0.9504,
"current_streak": "W2",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 5.9,
"avg_runs_allowed": 3.7,
"run_differential": 22.0
},
"available": true,
"quality_score": -0.0242
},
"opponent": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185,
"runs_scored": 776.0,
"runs_allowed": 720.0,
"run_differential": 56.0,
"run_differential_per_game": 0.3457,
"avg_runs_scored": 4.7901,
"avg_runs_allowed": 4.4444,
"offense_index": 1.0659,
"defense_index": 1.0111,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 7,
"losses": 3,
"win_pct": 0.7,
"avg_runs_scored": 6.5,
"avg_runs_allowed": 4.3,
"run_differential": 22.0
},
"available": true,
"quality_score": 0.128
},
"edges": {
"quality_edge": -0.1522,
"offense_edge": 0.0082,
"opponent_offense_edge": 0.0659,
"defense_strength": -0.0496,
"opponent_defense_weakness": -0.0111,
"recent_win_pct_edge": -0.2
},
"player_factors": {
"ip": 0.9898,
"run_prevention": 1.0231,
"strikeout": 0.9902
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "805123",
"profile": {
"available": true,
"pitcher_id": "805123",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 368.0,
"k_percent": 23.4,
"bb_percent": 10.5,
"woba": 0.306,
"xwoba": 0.317,
"sweet_spot_percent": 37.0,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 37.0,
"avg_best_speed": 79.2025,
"avg_hyper_speed": 93.8711,
"whiff_percent": 28.1,
"swing_percent": 48.8
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.197,
"command_and_miss": 0.1636,
"regression_edge": -0.3143,
"xwoba_edge": -0.1429,
"barrel_edge": -0.6889,
"hard_hit_edge": 0.1286,
"whiff_edge": 0.4143,
"bb_edge": -0.325,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "805123",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": -0.0992,
"sample_weight": 1.0,
"run_prevention_factor": 1.0084,
"strikeout_factor": 1.024,
"walk_factor": 1.026,
"homer_factor": 1.0543,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "805123",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0084,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 1.0084,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 1.026,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0543,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.024,
"adjusted": 6
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 5.0,
"predicted_H": 2,
"predicted_R": 0,
"predicted_ER": 0,
"predicted_BB": 0,
"predicted_SO": 4,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 17,
"Pitches": 79,
"published_line_source": "scoring_simulation.box_score"
}
},
"findings": [
{
"code": "ER_WITHIN_ONE",
"severity": "good",
"title": "Earned runs within one",
"detail": "Actual minus predicted earned runs was +0."
},
{
"code": "WORKLOAD_MISS",
"severity": "error",
"title": "Workload missed by at least three innings",
"detail": "The actual outing differed by -13 outs from the projected workload."
},
{
"code": "WALK_COMPONENT_MISS",
"severity": "warning",
"title": "Walk component missed",
"detail": "Actual minus predicted walks was +3."
}
],
"provenance": {
"prediction": "output/games/20260929_CHW@HOU.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260929 | 20260929_PHI@ATL | away | Jesús Luzardo | Jesús Luzardo | True | 6.2 | 5.0 | -5 | 3 | 1 | -2 | 8/3 | 0/1 | 7/6 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.8552875695732842,
"WHIP": 1.0742115027829313,
"IP": 179.2,
"games_started": null,
"games_pitched": 30,
"role_avg_IP": 6.161,
"recent_avg_IP": 7.0,
"last_start_IP": 9.0,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.8001,
"sample_weight": 1.0,
"run_prevention_factor": 0.932,
"strikeout_factor": 1.0851,
"walk_factor": 0.958,
"homer_factor": 0.9063,
"regression_flag": "neutral",
"k_percent": 30.3,
"bb_percent": 7.1,
"woba": 0.274,
"xwoba": 0.261,
"barrel_percent": 5.9,
"hard_hit_percent": 33.2,
"whiff_percent": 31.9
},
"espn_rank": {
"rank": null,
"total_ranked": null,
"metrics": null
},
"starter_workload_floor": null,
"player_form_blend": {
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "666200",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 29.1,
"ER": 3.0,
"R": 5.0,
"H": 14.0,
"BB": 6.0,
"SO": 36.0,
"HR": 3.0,
"BF": 109.0,
"Pitches": 426.0
},
"per_game": {
"IP": 6.0,
"ER": 0.6,
"R": 1.0,
"H": 2.8,
"BB": 1.2,
"SO": 7.2,
"HR": 0.6,
"BF": 21.8,
"Pitches": 85.2
},
"rates": {
"ERA": 0.9205,
"WHIP": 0.6818,
"ER_per_IP": 0.10227,
"H_per_IP": 0.47727,
"BB_per_IP": 0.20455,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.10227
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 64.1,
"ER": 13.0,
"R": 15.0,
"H": 39.0,
"BB": 15.0,
"SO": 78.0,
"HR": 5.0,
"BF": 247.0,
"Pitches": 938.0
},
"per_game": {
"IP": 6.1,
"ER": 1.3,
"R": 1.5,
"H": 3.9,
"BB": 1.5,
"SO": 7.8,
"HR": 0.5,
"BF": 24.7,
"Pitches": 93.8
},
"rates": {
"ERA": 1.8187,
"WHIP": 0.8394,
"ER_per_IP": 0.20207,
"H_per_IP": 0.60622,
"BB_per_IP": 0.23316,
"SO_per_IP": 1.21244,
"HR_per_IP": 0.07772
}
},
"season": {
"games": 30,
"totals": {
"IP": 179.2,
"ER": 57.0,
"R": 65.0,
"H": 141.0,
"BB": 52.0,
"SO": 221.0,
"HR": 15.0,
"BF": 730.0,
"Pitches": 2864.0
},
"per_game": {
"IP": 6.0,
"ER": 1.9,
"R": 2.1667,
"H": 4.7,
"BB": 1.7333,
"SO": 7.3667,
"HR": 0.5,
"BF": 24.3333,
"Pitches": 95.4667
},
"rates": {
"ERA": 2.8553,
"WHIP": 1.0742,
"ER_per_IP": 0.31725,
"H_per_IP": 0.78479,
"BB_per_IP": 0.28942,
"SO_per_IP": 1.23006,
"HR_per_IP": 0.08349
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.411,
"predicted_H": 3.972,
"predicted_BB": 1.565,
"predicted_SO": 7.32,
"predicted_HR": 0.609,
"predicted_ERA": 2.0497,
"predicted_WHIP": 0.8937
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.2,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.411,
"final": 1.6527,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 3.972,
"final": 5.625,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 1.565,
"final": 0.9228,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 7.32,
"final": 6.3679,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.609,
"final": 0.3591,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.0497,
"final": 2.0497,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8937,
"final": 0.8937,
"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": 64.1,
"ER": 13,
"H": 39,
"BB": 15,
"SO": 78,
"HR": 5,
"ERA": 1.8186528497409324,
"WHIP": 0.8393782383419688,
"K9": 10.911917098445594,
"HR9": 0.699481865284974,
"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-27T00:00:00"
},
"recent_form_boost": 0.6877574755100718,
"stat_evolution": [
{
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_IP": 6.666666666666667,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_BB": 0.0,
"predicted_SO": 5.0,
"predicted_HR": 0.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.2,
"predicted_ER": 2,
"predicted_H": 8,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0
}
}
],
"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": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.2,
"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": 2.0,
"after": 2.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"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": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 6.2,
"predicted_R": 2.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": 2.0,
"after": 2.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": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.2,
"after": 6.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 8.0,
"after": 8.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.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 6.6667,
"after": 6.2,
"delta": -0.4667,
"percent_delta": -0.07,
"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": 162,
"wins": 88,
"losses": 74,
"win_pct": 0.5432,
"runs_scored": 713.0,
"runs_allowed": 698.0,
"run_differential": 15.0,
"run_differential_per_game": 0.0926,
"avg_runs_scored": 4.4012,
"avg_runs_allowed": 4.3086,
"offense_index": 0.9791,
"defense_index": 1.0433,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.8,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0131
},
"opponent": {
"team": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802,
"runs_scored": 742.0,
"runs_allowed": 626.0,
"run_differential": 116.0,
"run_differential_per_game": 0.716,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 3.8642,
"offense_index": 1.019,
"defense_index": 1.1633,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1558
},
"edges": {
"quality_edge": -0.1427,
"offense_edge": -0.0209,
"opponent_offense_edge": 0.019,
"defense_strength": 0.0433,
"opponent_defense_weakness": -0.1633,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 0.9948,
"run_prevention": 1.0058,
"strikeout": 0.9942
},
"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": 720.0,
"k_percent": 30.3,
"bb_percent": 7.1,
"woba": 0.274,
"xwoba": 0.261,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 33.2,
"avg_best_speed": 76.4214,
"avg_hyper_speed": 93.1543,
"whiff_percent": 31.9,
"swing_percent": 46.3
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9078,
"command_and_miss": 0.9671,
"regression_edge": 0.3714,
"xwoba_edge": 1.4571,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.6714,
"whiff_edge": 0.9571,
"bb_edge": 0.525,
"pitch_design_score": 0.0394
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "666200",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 106,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 106,
"pitch_usage": 0.0,
"release_speed": 90.56721551683269,
"release_spin_rate": 2205.1938100088837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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": 106,
"pitch_usage": 0.0,
"release_speed": 90.56721551683269,
"release_spin_rate": 2205.1938100088837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.5672,
"release_spin_rate": 2205.1938,
"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.0394,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2812,
"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.8001,
"sample_weight": 1.0,
"run_prevention_factor": 0.932,
"strikeout_factor": 1.0851,
"walk_factor": 0.958,
"homer_factor": 0.9063,
"woba_minus_xwoba": 0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "666200",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.932,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.932,
"adjusted": 4
},
"predicted_BB": {
"original": 2.0,
"factor": 0.958,
"adjusted": 2
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9063,
"adjusted": 1
},
"predicted_SO": {
"original": 8.0,
"factor": 1.0851,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.2,
"predicted_H": 8,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 0,
"predicted_SO": 7,
"predicted_HR": 0,
"box_score_synced": true,
"BF": 28,
"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 5",
"detail": "Actual minus predicted hits was -5."
},
{
"code": "QUALITY_START_CLASSIFICATION_MISS",
"severity": "warning",
"title": "Quality-start classification was wrong",
"detail": "Projected quality start: True; actual quality start: False."
}
],
"provenance": {
"prediction": "output/games/20260929_PHI@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |
| 20260929 | 20260929_PHI@ATL | home | Chris Sale | Chris Sale | True | 6.1 | 6.1 | 0 | 2 | 3 | 1 | 5/4 | 3/1 | 8/9 | Last 10 before this game (10 available){
"model_context": {
"embedded_season": {
"ERA": 2.1577868852459017,
"WHIP": 0.9836065573770493,
"IP": 162.2,
"games_started": null,
"games_pitched": 27,
"role_avg_IP": 6.025,
"recent_avg_IP": 6.733,
"last_start_IP": 5.2,
"projection_source": "all_players_stats_recent_season_blend"
},
"savant": {
"quality_score": 0.7138,
"sample_weight": 1.0,
"run_prevention_factor": 0.9393,
"strikeout_factor": 1.08,
"walk_factor": 0.912,
"homer_factor": 0.9277,
"regression_flag": "neutral",
"k_percent": 30.9,
"bb_percent": 4.8,
"woba": 0.259,
"xwoba": 0.267,
"barrel_percent": 6.2,
"hard_hit_percent": 35.1,
"whiff_percent": 30.4
},
"espn_rank": {
"rank": 9,
"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": "519242",
"report_date": "20260929",
"season_year": 2026,
"rows_used": 27,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 33.2,
"ER": 8.0,
"R": 8.0,
"H": 26.0,
"BB": 3.0,
"SO": 40.0,
"HR": 2.0,
"BF": 131.0,
"Pitches": 497.0
},
"per_game": {
"IP": 6.2,
"ER": 1.6,
"R": 1.6,
"H": 5.2,
"BB": 0.6,
"SO": 8.0,
"HR": 0.4,
"BF": 26.2,
"Pitches": 99.4
},
"rates": {
"ERA": 2.1386,
"WHIP": 0.8614,
"ER_per_IP": 0.23762,
"H_per_IP": 0.77228,
"BB_per_IP": 0.08911,
"SO_per_IP": 1.18812,
"HR_per_IP": 0.05941
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 64.2,
"ER": 15.0,
"R": 15.0,
"H": 45.0,
"BB": 6.0,
"SO": 83.0,
"HR": 2.0,
"BF": 245.0,
"Pitches": 989.0
},
"per_game": {
"IP": 6.1,
"ER": 1.5,
"R": 1.5,
"H": 4.5,
"BB": 0.6,
"SO": 8.3,
"HR": 0.2,
"BF": 24.5,
"Pitches": 98.9
},
"rates": {
"ERA": 2.0876,
"WHIP": 0.7887,
"ER_per_IP": 0.23196,
"H_per_IP": 0.69588,
"BB_per_IP": 0.09278,
"SO_per_IP": 1.28351,
"HR_per_IP": 0.03093
}
},
"season": {
"games": 27,
"totals": {
"IP": 162.2,
"ER": 39.0,
"R": 44.0,
"H": 129.0,
"BB": 31.0,
"SO": 200.0,
"HR": 10.0,
"BF": 648.0,
"Pitches": 2574.0
},
"per_game": {
"IP": 6.0,
"ER": 1.4444,
"R": 1.6296,
"H": 4.7778,
"BB": 1.1481,
"SO": 7.4074,
"HR": 0.3704,
"BF": 24.0,
"Pitches": 95.3333
},
"rates": {
"ERA": 2.1578,
"WHIP": 0.9836,
"ER_per_IP": 0.23975,
"H_per_IP": 0.79303,
"BB_per_IP": 0.19057,
"SO_per_IP": 1.22951,
"HR_per_IP": 0.06148
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.789,
"predicted_H": 5.036,
"predicted_BB": 0.977,
"predicted_SO": 7.581,
"predicted_HR": 0.418,
"predicted_ERA": 2.5137,
"predicted_WHIP": 0.9389
}
},
"model_form_blend_trace": {
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.416,
"form_weight": 0.584,
"form_reliability": 0.8438,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.789,
"final": 1.8768,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.036,
"final": 5.021,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.977,
"final": 1.8186,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 3.0,
"form": 7.581,
"final": 5.6753,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.418,
"final": 0.6601,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5137,
"final": 2.5137,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9389,
"final": 0.9389,
"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": 64.2,
"ER": 15,
"H": 45,
"BB": 6,
"SO": 83,
"HR": 2,
"ERA": 2.087628865979381,
"WHIP": 0.788659793814433,
"K9": 11.551546391752577,
"HR9": 0.2783505154639175,
"games_pitched": 10,
"quality_starts": 9,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
},
"recent_form_boost": 0.7150151411321597,
"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": 3.0,
"predicted_SO": 3.0,
"predicted_HR": 1.0
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 27.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8438,
"prior_weight": 0.1562
}
},
{
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_IP": 6.1,
"predicted_ER": 2,
"predicted_H": 5,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 1
}
}
],
"prediction_impact_trace": {
"trace_version": "1.0",
"role": "pitcher",
"player_id": "519242",
"player_name": "Chris Sale",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.3333,
"predicted_SO": 3.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 1.0,
"predicted_IP": 6.1,
"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": 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": 3.0,
"after": 8.0,
"delta": 5.0,
"percent_delta": 1.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 8.0,
"delta": 5.0,
"percent_delta": 1.6667,
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 5.0,
"predicted_HR": 1.0,
"predicted_IP": 6.1,
"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": 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": 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": 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": 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": 3.0,
"after": 8.0,
"delta": 5.0,
"percent_delta": 1.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 3.0,
"after": 8.0,
"delta": 5.0,
"percent_delta": 1.6667,
"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": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802,
"runs_scored": 742.0,
"runs_allowed": 626.0,
"run_differential": 116.0,
"run_differential_per_game": 0.716,
"avg_runs_scored": 4.5802,
"avg_runs_allowed": 3.8642,
"offense_index": 1.019,
"defense_index": 1.1633,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 4.0,
"avg_runs_allowed": 3.9,
"run_differential": 1.0
},
"available": true,
"quality_score": 0.1558
},
"opponent": {
"team": "PHI",
"games": 162,
"wins": 88,
"losses": 74,
"win_pct": 0.5432,
"runs_scored": 713.0,
"runs_allowed": 698.0,
"run_differential": 15.0,
"run_differential_per_game": 0.0926,
"avg_runs_scored": 4.4012,
"avg_runs_allowed": 4.3086,
"offense_index": 0.9791,
"defense_index": 1.0433,
"current_streak": "W1",
"recent": {
"games": 10,
"wins": 4,
"losses": 6,
"win_pct": 0.4,
"avg_runs_scored": 3.2,
"avg_runs_allowed": 4.8,
"run_differential": -16.0
},
"available": true,
"quality_score": 0.0131
},
"edges": {
"quality_edge": 0.1427,
"offense_edge": 0.019,
"opponent_offense_edge": -0.0209,
"defense_strength": 0.1633,
"opponent_defense_weakness": -0.0433,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0114,
"run_prevention": 0.9732,
"strikeout": 1.006
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "519242",
"profile": {
"available": true,
"pitcher_id": "519242",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 601.0,
"k_percent": 30.9,
"bb_percent": 4.8,
"woba": 0.259,
"xwoba": 0.267,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 6.2,
"hard_hit_percent": 35.1,
"avg_best_speed": 76.8972,
"avg_hyper_speed": 93.4361,
"whiff_percent": 30.4,
"swing_percent": 50.7
},
"league_medians": {
"pa": 134.0,
"k_percent": 22.1,
"bb_percent": 9.2,
"woba": 0.315,
"xwoba": 0.312,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 37.9,
"avg_best_speed": 77.6329,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8393,
"command_and_miss": 1.0457,
"regression_edge": -0.2286,
"xwoba_edge": 1.2857,
"barrel_edge": 0.2222,
"hard_hit_edge": 0.4,
"whiff_edge": 0.7429,
"bb_edge": 1.1,
"pitch_design_score": -0.0655
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "519242",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 101,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 88.69431015805822,
"release_spin_rate": 2357.280511373259,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 101,
"pitch_usage": 0.0,
"release_speed": 88.69431015805822,
"release_spin_rate": 2357.280511373259,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"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.6943,
"release_spin_rate": 2357.2805,
"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.0655,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.4679,
"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.7138,
"sample_weight": 1.0,
"run_prevention_factor": 0.9393,
"strikeout_factor": 1.08,
"walk_factor": 0.912,
"homer_factor": 0.9277,
"woba_minus_xwoba": -0.008,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "519242",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9393,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9393,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9277,
"adjusted": 0
},
"predicted_SO": {
"original": 8.0,
"factor": 1.08,
"adjusted": 9
}
}
}
},
"simulation_box_score_stats": {
"predicted_IP": 6.1,
"predicted_H": 5,
"predicted_R": 2,
"predicted_ER": 2,
"predicted_BB": 3,
"predicted_SO": 8,
"predicted_HR": 1,
"box_score_synced": true,
"BF": 27,
"Pitches": 119,
"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/20260929_PHI@ATL.json (current server JSON; no revision substitution)",
"pregame_season": "embedded season totals in the current server JSON; ESPN metrics are retained in the model context",
"prior_history": "data/all_players_stats.csv; unique real appearances strictly before the target date",
"target_game": "Official MLB Stats API live game feed",
"postgame_season": "derived from pregame season totals plus the official target-game starter line"
}
} |